正则表达式匹配两个单词之一
Posted
技术标签:
【中文标题】正则表达式匹配两个单词之一【英文标题】:Regex match one of two words 【发布时间】:2011-10-15 08:45:50 【问题描述】:我的输入只能有两个值 apple
或 banana
。我可以使用什么正则表达式来确保两个单词中的任何一个都已提交?
【问题讨论】:
这个正则表达式是在什么语言/环境中实现的?在许多情况下,正则表达式似乎是不必要的开销。 【参考方案1】:这样就可以了:
/^(apple|banana)$/
从捕获的字符串中排除(例如$1
、$2
):
(?:apple|banana)
或者,如果您使用独立模式:
apple|banana
【讨论】:
对于某些人来说,将其用作非捕获组会很有用。使用(?:apple|banna)
将匹配任何一个,但不会将它们添加到捕获的字符串列表中(例如$1
、$2
..$N
)。
您好,小问题,如果我不希望 applebanana 匹配,我该怎么办?
上面的正则表达式匹配apple和banana,但不匹配applebanana。【参考方案2】:
有不同的正则表达式引擎,但我认为它们中的大多数都可以使用:
apple|banana
【讨论】:
如果您打算在您的正则表达式中添加更多内容,则需要在您的单词周围加上括号,例如:(apple|banana)
。
但是如何使它不区分大小写?
这是用re.IGNORECASE
标志设置的。例如:re.compile("(apple|banana)", re.IGNORECASE)
以上是关于正则表达式匹配两个单词之一的主要内容,如果未能解决你的问题,请参考以下文章
Python 正则表达式匹配包含两个或更少 o 字符的空格分隔的单词