aa673 发表于 2014-07-23 20:27

[求助]请帮忙解释一下这个正则是什么意思

bool(re.search(r'(?:(x)|y)(?(1)y|x)', 'xy'))这里?(1)是什么意思,搞不懂了,请解释一下,谢谢

yestreenstars 发表于 2014-07-24 00:49

(?:(x)|y)(?(1)y|x)首先,这个正则表达式的目的是匹配由2个字符组成的字符串,这个正则表达式可以匹配xy和yx这两个字符串。(?:(x)|y)这一段表示第一个字母可能是x,也可能是y,并对x进行分组捕获。(?(1)y|x)这一段表示如果捕获到x,则下一个要匹配的字符是y,否则下一个要匹配的字符是x。
这种用法是正则里的if、else语句。

如果你看了我的解释还不清楚的话,如果你英文比较好的话,那么你可以自行参阅perlre。
想了解更多的perlre的相关信息吗?请猛戳这里!

aa673 发表于 2014-07-24 16:26

弄明白了,?(1),是调用分组1, ?()...|...是if else语句。
谢谢

lizhihui_kevin 发表于 2014-09-17 17:19

学习了
回复 2# yestreenstars


   

blackold 发表于 2014-09-18 12:58

条件正则:mrgreen:不加表情字数不够。
页: [1]
查看完整版本: [求助]请帮忙解释一下这个正则是什么意思