regex 在Python中使用带替代的正则表达式模式而不分组[关闭]

soat7uwm  于 2023-10-22  发布在  Python
关注(0)|答案(1)|浏览(117)

已关闭,此问题需要details or clarity。它目前不接受回答。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。

2天前关闭。
Improve this question
我正在使用python的re.findall方法,并试图在文本块中搜索,以在每个块中找到与特定模式匹配的所有文本。
我的模式由一个长块组成,在这个块中,我有一个较小的块,有不同的可能性(一个月)。所以更准确地说,我的模式看起来如下:

'PART1(0[1-9])|(1[0-2])PART2'

我的问题是,怎样才能写出这样一个模式而不用括号呢?我只想找到整个模式的匹配,所以在整个模式周围使用括号并不能解决我的问题。到目前为止,我发现的唯一解决方案是编写两个模式并使用if语句,那么有更好的解决方案吗?

balp4ylt

balp4ylt1#

如果你想忽略(...)的捕获行为,请考虑使用非捕获组:(?:...),如https://www.regular-expressions.info/brackets.html或www.example.com所述https://www.rexegg.com/regex-disambiguation.html#noncap
对于你的例子,这将是:

PART1(?:0[1-9]|1[0-2])PART2

(see https://regex101.com/r/Gosczz/latest

相关问题