有个很好的测试工具:RegExr: 学习、构建和测试正则 (regexr-cn.com)用于验证你的正则表达式
有个很好的测试题网站:编程胶囊-打造学习编程的最好系统 (codejiaonang.com)
一、 正则表达式:
1、匹配中文字符串: [\u4e00-\u9fa5]
2、匹配所有的符号:[^a-zA-Z0-9\u4e00-\u9fa5]
3、涉及固定中文的字符串:[(您好)[a-zA-Z0-9\u4e00-\u9fa5]{0,5}(先生)]
二、re常用方法
(1) idx = [idx..span() for idx in re.finditer(pttern, sentence)] 可以返回所有满足条件的文本和对应索引
三、命名捕获组
(?P<name>)适用于:re.search,re.match,re.find,re.findall等用来查询
text='姓名:周杰伦,'
rep = re.match("(姓名:)(?P<name>),", text)
print(rep.group("name"))
四、正向先行断言 \d(?=px)
匹配px前的数字,例如:2px 匹配结果为:2
同理,相反的,正向先行断言:\d(?!px) 匹配不含px前的数字。
例如:(?!\\()(.)*?(?=\\)\\#) 匹配:
(1008,Test123,9,6,98,1,1,#s('47'^'%d'),[1^1^1^1^1^1],0,0,1517472414)#%s
五、数字应用 (\w)a\1
(\w)a\1 能匹配如下红色的字母
hah dad bad dab gag gab