perl 正则表达式中模式分组/y((.)(.)\3 \2) d\1/ 是怎么匹配的?

高分请教下,perl 正则表达式中模式分组/y((.)(.)\3 \2) d\1/ 是怎么匹配的?
最新回答
谁许俄一世荒芜

2024-11-03 14:46:14

分组是按照左边圆括号"("的出现次序确定顺序
所以\1是表示((.)(.)\3 \2)中整个的内容,\3表示((.)(.)\3 \2)中内嵌的第二个圆括号中的内容,\2表示内嵌的第一个圆括号中的分组
/y((.)(.)\3 \2) d\1/
这个正则表达式中有空格,所以这个正则表达式可以匹配
y字符跟两个任意字符,重复第三个字符,一个空格,重复第二个字符,一个空格,字符d,重复第二至第五个字符
这个正则可以匹配字符串 “ystt s dstt s”
如果这个正则表达式中没有空格,或者在最后使用了x标记,则可以匹配字符串 "ysttsdstts"