【正则表达式】一、常见符号含义

常见字符含义

[ABC]:匹配目标字符串中[]内的字符

import re

if __name__ == __main__:
    str = "abcdefghk"
    reg1 = r[abh]
    ans = re.findall(reg1, str)
    print(ans) # [a, b, h]

[^ABC]:匹配目标字符串中除[]之外的所有字符

import re

if __name__ == __main__:
    str = "abcdefghk"
    reg1 = r[^abh]
    ans = re.findall(reg1, str)
    print(ans) # [c, d, e, f, g, k]

[A-Z]:匹配目标字符串中在[]区间之内的所有字符

import re

if __name__ == __main__:
    str = "abcdefghk"
    reg1 = r[a-c]
    ans = re.findall(reg1, str)
    print(ans) # [a, b, c]

.(等价于[^ ]):匹配换行符( , )之外的任何字符

import re

if __name__ == __main__:
    str = "abcdefghk" 
          "qwqweeq
" 
          "addsd
"
    reg1 = r.
    ans = re.findall(reg1, str)
    print(ans) # [a, b, c, d, e, f, g, h, k, q, w, q, w, e, e, q, a, d, d, s, d, 
]

s: 匹配所有空格

import re

if __name__ == __main__:
    str = "abcd ..sz。。ef  gh   k"

    reg1 = rs
    ans = re.findall(reg1, str)
    print(ans) # [ ,  ,  ,  ,  ,  ]

w:等价于 [A-Za-z0-9_]匹配所有数字、字母、下划线

import re

if __name__ == __main__:
    str = "abcd!!!A_==k"

    reg1 = rw
    ans = re.findall(reg1, str)
    print(ans) # [a, b, c, d, A, _, k]

$:匹配输入字符的结束位置

import re

if __name__ == __main__:
    str = "abcd!!!A_==k1231"

    reg1 = rd+$
    ans = re.findall(reg1, str)
    print(ans) # [1231]

():标记子表达式的开始和结束位置 *:匹配前面表达式零次或多次 +:匹配前边表达式一次或者多次

import re

if __name__ == __main__:
    str = "abcd!!!A_==k1231"

    reg1 = rd*$
    ans = re.findall(reg1, str)
    print(ans) # [1231, ]

.:匹配除换行符之外任意字符

import re

if __name__ == __main__:
    str = "aA-,.#"

    reg1 = r.
    ans = re.findall(reg1, str)
    print(ans) # [a, A, -, ,, ., #]

[]:[]表达式的开始和结束位置 ?匹配前边子表达式零次或一次

import re

if __name__ == __main__:
    str = "我在西安等你"

    reg1 = r.西安(等你)?
    ans = re.findall(reg1, str)
    print(ans) # [等你]

^相当于集合取非 |相当于取或

import re

if __name__ == __main__:
    str = "我在西安等你"

    reg1 = r.西安(等他|等你)?
    ans = re.findall(reg1, str)
    print(ans) # [等你]

{n}匹配确定的n次

import re

if __name__ == __main__:
    str = "look"

    reg1 = ro{2}
    ans = re.findall(reg1, str)
    print(ans) # [oo]

{n,}至少匹配n次,o{1}等价于0+, o*等价于o* {n,m}:匹配n-m次

经验分享 程序员 微信小程序 职场和发展