官方手册中如下:
>>> 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 2018-11-20 16:10:30 +08:00
就是重复匹配的$1 内容????
|
2
Ho 2018-11-20 16:12:37 +08:00
这里是匹配第一个捕获组
|
3
uTOmOuk3L6sb4MSI 2018-11-20 16:13:07 +08:00
|
4
al0ne 2018-11-20 16:13:36 +08:00
正则表达式反向引用 我理解的是\1 可以代表前面括号匹配到的内容
|
5
uTOmOuk3L6sb4MSI 2018-11-20 16:14:47 +08:00
|
7
katsusan 2018-11-20 16:17:01 +08:00
\1 应该是引用第一个分组(\b[a-z]+)
|
8
jdhao 2018-11-20 16:20:47 +08:00 1
这个再 regex 里面叫 capture group,更多细节 Google "capture group regex"
|
9
flowfire 2018-11-21 08:54:24 +08:00 via iPhone
就是$1,只不过一个是放在正则表达式里,一个是放在后面的替换字符里
|