正则表达式笔记

基础

  • 精准匹配:

    • \d:数字
    • \w:字符
    • \s :任何空白字符,包括空格、制表符、换行符等
  • 模糊匹配:

    • .:单个任意字符
  • 可变匹配:

    • *:任意个字符
    • +:至少一个字符
    • ?:0或1个字符
    • {}{n}表示n个字符,用{n,m}表示n-m个字符

进阶

  • []:方括号中的符号需要转义,多个条件可以直接连接,或
    • 0-9
    • a-z
    • A-Z
    • \_
  • |:表示或,A|B可以匹配A或B
  • ^:表示行的开头,^\d表示必须以数字开头
  • $:表示行的结束,\d$表示必须以数字结束

re模块

切分

1
2
3
4
5
6
re.split(正则表达式,字符串)

# 举例,以多个空格或者逗号分割
>>> re.split(r'[\s\,]+', 'a,b, c d')
['a', 'b', 'c', 'd']

分组

1
2
3
4
5
6
7
8
re.match(表达式,字符串)
分组用括号,括号内多个条件或时用|连接
# 举例 时间分割
>>> t = '19:05:30'
>>> m = re.match(r'^(0[0-9]|1[0-9]|2[0-3]|[0-9])\:(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])\:(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])$', t)
>>> m.groups()
('19', '05', '30')

贪婪匹配

  • 正则匹配默认是贪婪匹配,也就是匹配尽可能多的字符
  • 在匹配符后面加上?号,为非贪婪匹配
Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2023-2025 John Doe
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信