[英]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]+
此外,如果您的字符串可能不會跟隨數字,則應使用*
(0或更多),而不是+
(1或更多)。 這樣abc
和abc123
都匹配:
(?:abc|def|xyz)[0-9]*
這是你目前的正則表達式:
abc|def|xyz[0-9]+
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.