正则表达式 - 三种情况的一种模式,带/不带减号/没有任何数字

时间:2015-08-10 10:33:22

标签: regex

在我们的应用程序中,它需要一种模式来验证以下三种情况:

  1. "任何角色" +" - " +"任何角色" +"一个数字" // ^([a-zA-Z]+)-([a-zA-Z]+[0-9]+)
  2. 或"任何角色" +"一个数字" // ^([a-zA-Z]+[0-9]+)
  3. 或"任何角色" (最后没有任何数字)
  4. 我无法让它运行(3)条件并将它们组合成一个模式。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:5)

^(?:([a-zA-Z]+)-)?([a-zA-Z]+([0-9]+))$|^([a-zA-Z]+)$

我得到了你的第一个模式。

我做了"任何角色" +" - " 可选,以便它也适用于第二种情况。

我为第三种情况添加了另一种选择 - |^([a-zA-Z]+)

<小时/> 没有不必要组的更易读的版本:

^(?:(?:[a-zA-Z]+-)?[a-zA-Z]+[0-9]+|[a-zA-Z]+)$