正则表达式0514
匹配单个字符
【】
写法
[abc]
符号中不要有逗号
如果要表达一个范围通过 -
练习
str_list = ["name", "_age", "#348z$s"]
# 需求:
# 找到str_list中不符合标识符命名规范的,并打印出来
for str_ in str_list:
for char_ in str_:
p = "[a-zA-Z0-9_]"
s = char_
res = re.match(p, s)
if res == None:
print(str_)
break
\d
匹配数字,即0-9
import re
p = "\d" # 【0-9】
s = "9"
res = re.match(p, s)
print(res)
digtal 数字技术
decimal 十进制数字
\D
匹配非数字
import re
p = "\D" # 【】
s = "_"
res = re.match(p, s)
print(res)
\s
匹配空白符号
包括,空格,换行符,制表符, \r回车符
import re
p = "\s"
s = " "
res = re.match(p, s)
print(res)
res2 = s.isspace()
print(res2)
\S
非空白符号
\w
word 【a-zA-Z0-9_】
\W
【a-zA-Z0-9_】取反
匹配多个字符
明确功能
匹配多个字符,这些符号都是辅助
主要是用于修饰前面(单个字符匹配符)
明确一下单个的符号出现次
*
0 1 无限次
import re
p = "\d*"
s = "666是我的幸运数字"
res = re.match(p, s)
print(res)
print(res.group())
+
1次或无限次
import re
p = "\d+"
s = "10321"
res = re.match(p, s)
print(res)
?
0次或1次
import re
p = "\d?"
s = "1456"
res = re.match(p, s)
print(res)
{m}
匹配前一个字符出现m次
{m,n}
import re
p = "\d{3,4}"
s = "0713"
res = re.match(p, s)
print(res)