【正则表达式】一、常见符号含义
常见字符含义
[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次
