我目前正在编程一种词汇算法,该算法可以检查用户是否正确输入了单词。我有以下情况:单词的正确解决方案是“ part1,part2”。用户应该能够输入“ part1”(答案1),“ part2”(答案2)或“ part1,part2”(答案3)。我现在尝试将用户给定的字符串与以下自动创建的正则表达式进行匹配:
^(part1|part2)$
这只会返回正确的答案1和2,而答案3是错误的。我现在想知道是否存在类似于|的运算符。表示and/or
而不是either...or
。
谁能帮我解决这个问题?
1
正则表达式可能不是最佳解决方案。我会使用普通的字符串方法。
—
Felix Kling
这个问题没有明确指出。当您只需要与一组合法字符串进行精确的字符串比较时,为什么要使用模式匹配?除非您的regex编译器按照Perl的方式将替代方案优化为O(1)trie结构,否则您可能应该针对哈希成员资格进行测试。其他正则表达式引擎对此并不十分聪明。
—
tchrist 2011年
@tchrist用例可能是mongodb
—
Nadir Abbas
$or
正则表达式匹配