正则表达式

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)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容