正则表达式

时间:2017-04-20 18:00:02

标签: regex regex-lookarounds lookaround

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

这些值应匹配

3
1000
15-20
2048-4096/100

此值应

3/4

我想在正则表达式中说“只有匹配4位数字和/分号前面的冒号

才匹配

例如:

    -9999分区符号前面的
  1. /应匹配
  2. 9999/不应该匹配,因为没有 -
  3. -/不匹配,因为没有数字

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

  4. 我只是寻找前面的数字,但是如果我在其中添加?*则不再有效。谢谢你的帮助!!!

1 个答案:

答案 0 :(得分:2)

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

如果我理解你想要什么,

  • \ d +以一些数字开头
  • (?:...)?其次是以破折号或冒号开头的可选模式
  • \ d {4} / \ d +可选组中的数字可以是带斜线和另一个数字的4位数字
  • \ d +或者如果可选组不以斜杠开头,则可以是任意数字。