正则要点一:
Python中正则表达式中r的定义: 特殊字符 --> 普通字符 例: 转换成普通字符 编程语言: ----> \n 正则匹配: ----> \n 对于Python中的正则匹配的转义需要经过两层 特殊字符 --> 编程语言 --> 正则匹配 --> 普通字符 添加了r后的: re.findall(r'\n','\n') 特殊字符 --> 正则匹配 --> 普通字符 r的含义是Python的内置替代编程语言的转义
正则中在查找的字段前或后添加新内容:
方法一
str = '123.jpg, 456.jpg, 789.jpg'
b = re.sub('(?P<data>d+.jpg)',r'sdf\g<data>', str)
print(b)
结果:sdf123.jpg, sdf456.jpg, sdf789.jpg
方法二
def double(matched):
value = matched.group('value')
return str( 'sdd/' + value)
s = '567'
print(re.sub('(?P<value>d+)', double, s)) #1.在第二参数中,可以添加字符串或函数 2.?P<value>的意思就是命名一个名字为value的组,匹配规则符合后面的/d+
结果:sdd/567
在匹配 在内的其他字符:
import re #在res字符串中,除了有 ,还有空格,tab键 res = ''' dd fd e ''' result1 = re.findall('dd*e',res) result2 = re.findall('dd[sS]*e',res) print(result1) print(result2)
结果:
[]
['dd
fd
e']
对应学习参考:https://baike.baidu.com/item/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1700215?fr=aladdin
匹配重复单词:
import re s2 = 'appleapple56tototowidth' p = re.compile(r'(w+)1+') #1表示使用编号为1的分组
#p = re.compile(r'(w+)1{1,}') 匹配重复单词的次数 {1,}代表2次以上(包括2) 在此{}中特殊性 print(p.findall(s2))
结果:['apple', 'to']