猿问

正则表达式:是否可以使用“|” 仅适用于匹配模式的一部分?

是否可以执行如下操作:

re.match(r'someArbLongRegex{option1|option2}anotherArbLongRegex', line)

而不是必须这样做:

re.match(r'someArbLongRegexoption1anotherArbLongRegex|someArbLongRegexoption2anotherArbLongRegex', line)

基本上,|我不想将其应用于整个正则表达式模式,而是希望将其应用于正则表达式模式的一小部分。


MYYA
浏览 107回答 2
2回答

偶然的你

尝试使用 (?:选项1|选项2)re.match(r'someArbLongRegex(?:option1|option2)anotherArbLongRegex', line)

慕工程0101907

是的。只需使用括号即可。re.match(r'someArbLongRegex((option1)|(option2))anotherArbLongRegex', line)有时,根据数据,您知道选项 1 和选项 2 不会同时位于“行”中,但至少其中 1 个会位于“行”中。然后你可以这样做:re.match(r'(someArbLongRegex)((option1)?(option2)?)anotherArbLongRegex', line)
随时随地看视频慕课网APP

相关分类

Python
我要回答