re: 在线测试
常用元字符
项目 | 元字符 | 匹配字符 |
---|---|---|
1 | . | 任意字符,换行符除外 |
2 | \w | 字母、数字、下划线 |
3 | \s | 空白字符 |
4 | \d | 数字 |
5 | \n | 换行符 |
6 | \t | 制表符 |
7 | ^ | 开始 |
8 | $ | 结尾 |
9 | \W | |
10 | \D | |
11 | \S | |
12 | a | b |
13 | () | 组,匹配括号内的表达式 |
14 | […] | 匹配字符组中的字符 |
15 | [^…] |
量词
控制元字符出现的次数
项目 | 元字符 | 重复多少次 |
---|---|---|
1 | * | 0或更多次 |
2 | + | 1或更多次 |
3 | ? | 0或1次 |
4 | {n} | n次 |
5 | {n,} | n次或更多次 |
6 | {n,m} | n到m次 |
贪婪匹配: .*
惰性匹配:.*?
search用法
import re
target_string = 'my name is <zhangfei> yes'
# (.*?)匹配所需的字符,?P<name>给需要匹配的字符命名name re.S模式让.能匹配换行符
matched_string = re.compile(r'is <z(?P<name>.*?)y',re.S)
# print(matched_string)
result = matched_string.search(target_string)
# print(result)
name = result.group('name')
print(name)
findall用法
import re
source_string = 'URI="https://edu.aliyun.com/"'
result = re.findall('URI="(.*?)"', source_string, re.S)
print(result) # 返回列表
result = result[0]
print(result)