正则表达式匹配两个单词之一

Posted

技术标签:

【中文标题】正则表达式匹配两个单词之一【英文标题】:Regex match one of two words 【发布时间】:2011-10-15 08:45:50 【问题描述】:

我的输入只能有两个值 applebanana。我可以使用什么正则表达式来确保两个单词中的任何一个都已提交?

【问题讨论】:

这个正则表达式是在什么语言/环境中实现的?在许多情况下,正则表达式似乎是不必要的开销。 【参考方案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 字符的空格分隔的单词

如何正则表达式匹配()在单词的末尾

需要正则表达式来匹配两个单词,因为它们之间可能有任意数量的空格或其他字符

正则表达式匹配用括号括起来并用管道分隔的所有单词