正则表达和使用OR?

时间:2018-02-07 10:35:11

标签: regex

我正在尝试找到正确的正则表达式来检查以下内容:

选项1:整数(例如100,200,1,0,15,300000)

选项2:N / A(匹配案例)

我试过“^ \ d + $ |(N / A)”,但我需要一个异或条件(只有一个选项是可能的,现在我匹配案例“100 N / A”):

  • 100:正确
  • 100.02:错误
  • N / A:是
  • 不适用:错误
  • 100 N / A:False
  • N / A 100:错误

1 个答案:

答案 0 :(得分:2)

您应该对交替运算符使用外部分组:

^(\d+|N/A)$

如果需要/正则表达式分隔符,则/可能需要在代码中转义(如在Ruby或JS正则表达式文字中)。您还可以使用非捕获组仅对备选项进行分组,而不将数据捕获到子组中:^(?:\d+|N/A)$

请参阅regex demo

<强>详情

  • ^ - 字符串开头
  • ( - 分组构造的开始(以便围绕它的^$锚可以应用于所有替代方案):
    • \d+ - 1+位数
    • | - 或
    • N/A - N/A子字符串
  • ) - 分组构造的结尾
  • $ - 字符串结束。