官方手册中如下:
>>> import re
>>> re.findall(r'\bf[a-z]*', 'which foot or hand fell fastest')
['foot', 'fell', 'fastest']
>>> re.sub(r'(\b[a-z]+) \1', r'\1', 'cat in the the hat')
'cat in the hat'
我知道第一个中的\b是单词边界,那么第二个中的\1 具体是什么意思,向后重复匹配的意思吗?
官方手册中如下:
>>> import re
>>> re.findall(r'\bf[a-z]*', 'which foot or hand fell fastest')
['foot', 'fell', 'fastest']
>>> re.sub(r'(\b[a-z]+) \1', r'\1', 'cat in the the hat')
'cat in the hat'
我知道第一个中的\b是单词边界,那么第二个中的\1 具体是什么意思,向后重复匹配的意思吗?
1
uTOmOuk3L6sb4MSI Nov 20, 2018
就是重复匹配的$1 内容????
|
2
Ho Nov 20, 2018
这里是匹配第一个捕获组
|
3
uTOmOuk3L6sb4MSI Nov 20, 2018
|
4
al0ne Nov 20, 2018
正则表达式反向引用 我理解的是\1 可以代表前面括号匹配到的内容
|
5
uTOmOuk3L6sb4MSI Nov 20, 2018
|
7
katsusan Nov 20, 2018
\1 应该是引用第一个分组(\b[a-z]+)
|
8
jdhao Nov 20, 2018 这个再 regex 里面叫 capture group,更多细节 Google "capture group regex"
|
9
flowfire Nov 21, 2018 via iPhone
就是$1,只不过一个是放在正则表达式里,一个是放在后面的替换字符里
|