0

我试图弄清楚如何使用正则表达式将选项值放在环视中。

这些值应该匹配

3
1000
15-20
2048-4096/100

这个值不应该

3/4

我想在正则表达式中说“只有在 / 除法符号前面有破折号 4 位数字和冒号时才匹配

例如:

  1. -9999/除法符号之前应匹配
  2. 9999/不应该匹配,因为没有 -
  3. -/不应该匹配,因为没有数字

    ^[^0][0-9]*(-|:)?([0-9]*)?(?<=[0-9])(\/)?([0-9]*)$

我环顾四周只是寻找一个前面的数字,但如果我把 a ?or放进*去,它就不再起作用了。谢谢您的帮助!!!

4

1 回答 1

2
^\d+(?:[-:](?:\d{4}\/\d+|\d+))?$

如果我正确理解你想要什么,

  • \d+ 以某个数字开头
  • (?: ...)? 后跟以破折号或冒号开头的可选模式
  • \d{4}/\d+ 可选组中的数字可以是带有斜线和另一个数字的4位数字
  • \d+ 或者可选组可以是任何数字,如果它不以斜杠开头。
于 2017-04-20T18:25:51.777 回答