regex - AND/OR 运算符在正则表达式中如何表示?

标签 regex operators

我目前正在编写一个词汇算法来检查用户是否正确输入了单词。我有以下情况: 该词的正确答案是“part1,part2”。 用户应该能够输入“part1”(答案 1)、“part2”(答案 2)或“part1,part2”(答案 3)。 我现在尝试将用户给出的字符串与以下自动创建的正则表达式进行匹配:

^(part1|part2)$

这只会返回正确的答案 1 和 2,而答案 3 将是错误的。我现在想知道是否有类似于 | 的运算符上面写的是and/or,而不是either...or

有人可以帮我解决这个问题吗?

最佳答案

我假设您想要动态构建一个正则表达式来包含part1和part2之外的其他单词,并且您希望顺序无关紧要。如果是这样,你可以使用这样的东西:

((^|, )(part1|part2|part3))+$

积极匹配:

part1
part2, part1
part1, part2, part3

负匹配:

part1,           //with and without trailing spaces.
part3, part2, 
otherpart1

关于regex - AND/OR 运算符在正则表达式中如何表示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8020848/

相关文章:

perl - 这个 Perl 语句是什么意思?

javascript - 返回操作数之一的 boolean 运算符

ios - 如何在 Swift 中制作自定义关系运算符

Java的replaceAll不替换字符串

Javascript RegExp + 单词边界 + unicode 字符

java - 正则表达式仅包含数字且不包含仅 0

php - 我可以在 PHP 中输​​入多少个 "OR"条件?

php - 如何从 URL 中排除单词或字符串 - 正则表达式

regex - 什么时候使用解析器生成器,什么时候使用正则表达式就足够了?

c++ - 如何在 Vector 类中创建 operator=?