正则表达式

1 ^后面的以什么开头   $前面的以什么结尾  .任意字符  *任意次  ?取消贪婪匹配

例1:取出"jmmmmmmmmyjjj123"中的"jmmmmmmmmyj"

import re

line = "jmmmmmmmmyjjj123"

match_str = ".*?(j.*?j).*"

match_obj = re.match(match_str, line)

if match_obj:

    print(match_obj.group(1))

2  {1}大括号前面的字符出现一次    {1,}大括号前面的>=1次    {2,5} 出现2-5次

    | 或

    [abcd] 出现abcd任意   [^1]不是

例2:请写出手机号码的正则表达式

import re


def phoneNumRegex(self, phone):

    regex_str = "(1[34578][0-9]{9})"

    match_obj = re.match(regex_str, phone)

    if match_obj:

        return phone

3 \s空格字符  \S非空格字符 \w相当于[A-Z a-z 0-9] \W与\w相反

4  \u4E00_\u9FA5 中文字符

例3 提取"study in 北京大学" 中 "北京大学"

line = "study in 北京大学"

regex_str = ".*?([\u4E00_\u9FA5])"

5 \d 数字

6 正则表达式综合练习:匹配多种情况下的出生年月日2001/6/1 2001-6-1 2001-06-01 2006-06

import re


def birthday_regex(birthday):

    regex_str  = ".*出生于(\d{4}[年-/]\d{1,2}($|[月/-]\d{1,2}|月))"

    match_obj = re.match(regex_str, birthday)

    if match_obj:

        return match_obj.group(1)

你可能感兴趣的:(正则表达式)