Chinaunix
标题:
[求助]请帮忙解释一下这个正则是什么意思
[打印本页]
作者:
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
条件正则
不加表情字数不够。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2