簡體   English   中英

如何在正則表達式中使用OR

[英]How to use OR in regular expressions

我有一些字符串,如“abc”,“def”,“xyz”,他們可能會跟着數字。 例如:abc123或xyz92

如果我使用:

re.findall("abc|def|xyz[0-9]+",text)

然后它只返回xyz后跟數字,其余的我只得到字符串。

如何在不手動操作的情況下匹配所有這些,如:

re.findall("abc[0-9]+|def[0-9]+|xyz[0-9]+",text)

使用括號和?:來創建非捕獲組:

(?:abc|def|xyz)[0-9]+

正則表達式可視化

Debuggex演示

此外,如果您的字符串可能不會跟隨數字,則應使用* (0或更多),而不是+ (1或更多)。 這樣abcabc123都匹配:

(?:abc|def|xyz)[0-9]*

正則表達式可視化

Debuggex演示

這是你目前的正則表達式:

abc|def|xyz[0-9]+

正則表達式可視化

Debuggex演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM