代码之家  ›  专栏  ›  技术社区  ›  FutureCake

正则表达式在数字序列之前匹配子字符串

  •  0
  • FutureCake  · 技术社区  · 7 年前

    我只想得到4个数字之前的-和后面的空格。我制作了下面的正则表达式来尝试匹配这些字符。 ^(- )+?(?=\d{4})$
    如果我在下面的数字字符串上尝试这个正则表达式,则不会得到匹配项。
    -7575个

    我做错了什么?
    我对regex很陌生。

    提前谢谢。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Leyff da    7 年前

    您的实际正则表达式所做的是:
    ^(- )+? =>匹配序列 -
    后面必须跟4位数字 (?=\d{4}) 没有匹配它
    然后是结束语 $
    所以这是不可能的。
    你也可以,如果你不想匹配数字,就必须把结尾放在积极的前瞻中,比如
    ^(- )+?(?=\d{4}$)
    或删除积极的前瞻性,如
    ^(- )+?\d{4}$