繁体   English   中英

Python正则表达式分组

[英]Python regex grouping

我正在使用python的re模块,我想搜索和捕获两个可能的项目之一,但是我不知道如何使分组和非捕获分组正常工作:

可以说我的模式是:

(?:(test)55)|(apple)

因此,基本上我想捕获“测试”或“苹果”,但只有在其后跟55时才捕获“测试”。

这里的问题是我最终有2个捕获组,所以最终得到了(无,“苹果”)或(“测试”,无)。

我知道我可以对其进行后处理:

next( item for item in groups() if item is not None)

但是我想知道是否有一种方法可以在正则表达式中用它来使它起作用(我只是想更好地学习正则表达式)。

谢谢。

要仅捕获组,请仅使用包含(test|apple)一组捕获括号。 添加前瞻,以便测试后必须跟随55

re.findall(r"(test(?=55)|apple)", mystring);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM