标签:width 要求 水果 语法 编程 位置 作用 多次 dal
字符
|
功能
|
.
|
匹配任意1个字符(除了\n)
|
[ ]
|
匹配[ ]中列举的字符
|
\d
|
匹配数字,即0-9
|
\D
|
匹配非数字,即不是数字
|
\s
|
匹配空白,即 空格,tab键
|
\S
|
匹配非空白
|
\w
|
匹配单词字符,即a-z、A-Z、0-9、_
|
\W
|
匹配非单词字符
|
字符 |
功能
|
* | 匹配前一个字符出现0次或者无限次,即可有可无 |
+ | 匹配前一个字符出现1次或者无限次,即至少有1次 |
? | 匹配前一个字符出现1次或者0次,即要么有1次,要么没有 |
{m} | 匹配前一个字符出现m次 |
{m,n} | 匹配前一个字符出现从m到n次 |
字符
|
功能
|
^
|
匹配字符串开头
|
$
|
匹配字符串结尾
|
字符
|
功能
|
|
|
匹配左右任意一个表达式
|
(ab)
|
将括号中字符作为一个分组
|
\num
|
引用分组num匹配到的字符串
|
(?P<name>)
|
分组起别名
|
(?P=name)
|
引用别名为name分组匹配到的字符串
|
match_obj = re.match(r"c:\\a\\b\\c", my_str) if match_obj: print(match_obj.group()) else: print("匹配失败")
代码/语法
|
说明
|
*?
|
重复任意次,但尽可能少重复
|
+?
|
重复1次或更多次,但尽可能少重复
|
??
|
重复0次或1次,但尽可能少重复
|
{n,m}?
|
重复n到m次,但尽可能少重复
|
{n,}?
|
重复n次以上,但尽可能少重复
|
match_obj = re.match("t.o", "two123456") if match_obj: # 获取匹配的结果 print(match_obj.group()) else: print("匹配失败")
# 扩展- 匹配qq match_obj = re.match("(qq):(1\d{4,11})", "qq:10987") if match_obj: print(match_obj.group()) # 表示获取第一个分组的数据 print(match_obj.group(1)) # 表示获取第二个分组的数据 print(match_obj.group(2)) else: print("匹配失败")
# 扩展- 匹配qq match_obj = re.match("(qq):(1\d{4,11})", "qq:10987") if match_obj: print(match_obj.group()) # 表示获取第一个分组的数据 print(match_obj.group(1)) # 表示获取第二个分组的数据 print(match_obj.group(2)) else: print("匹配失败")
match_obj = re.match("<(?P<name1>[a-zA-z0-9]+)><(?P<name2>[a-zA-z0-9]+)>.*</(?P=name2)></(?P=name1)>", "<html><h1>www.itcast.cn</h1></html>") if match_obj: print(match_obj.group()) else: print("匹配失败")
match_obj = re.search("\d+", "水果有20个30") if match_obj: print(match_obj.group()) else: print("匹配失败")
result = re.findall("\d+", "苹果20个鸭梨10个总共30个水果") print(result)
result = re.sub("\d+", "200", "阅读数:10 评论数:10", count=1) print(result)
result = re.split(":|,", "哈哈:呵呵,嘻嘻:嘿嘿", maxsplit=1) print(result)
标签:width 要求 水果 语法 编程 位置 作用 多次 dal
原文地址:https://www.cnblogs.com/qingchang/p/9060480.html