解析Python正则表达式"[^A-Za-z|\s]|(x)\1{1,}"及相关疑问
正则表达式
(x)\1{1,} 解析 咱们拆解这个表达式的各个部分,搞清楚它的实际作用:
(x):这是一个捕获组,会把匹配到的字符x存起来,这个组的编号是1(捕获组按左括号出现的顺序从1开始编号)。\1:这是反向引用,它的作用是调用前面第一个捕获组里存的内容——也就是刚才捕获到的x,不是字面意义上的字符1。{1,}:表示它前面的元素(也就是\1)要至少重复1次。
合起来看,(x)\1{1,}的作用就是匹配连续出现2次及以上的x,比如xx、xxx、xxxx这类字符串,完全不是你之前以为的x1、x111模式。
举几个直观的例子:
- 能匹配的内容:
xx、xxxxxx - 不能匹配的内容:
x(只有单个x,不满足连续至少2次)、x1(\1指代的是x,不是数字1)、xyy(后面重复的不是x)
如果你想匹配x1或x111这类模式,应该写x1{1,},这里的1是字面数字字符,和捕获组、反向引用没有关系。
内容的提问来源于stack exchange,提问作者Z.Wei
相关产品推荐
相关产品推荐

