1

我正在寻找一种模式来匹配末尾带有连字符的数字,如下所示:

125,000-
1.234,567-
60,000-
4

5 回答 5

4

只需尝试以下正则表达式:

/\d[.,\d]*-/

甚至:

/\d([.,]?\d+)*-/
于 2013-03-19T13:39:03.127 回答
3

注意 Aleš Krajník 的答案与我最终得到的答案基本相同,除了他使用非捕获分组(因为不需要捕获)......他应该像第一次一样获得投票恕我直言

请注意,在下面的答案中,我假设,逗号是小数点分隔符,而.点是千位分隔符(例如,对于欧洲编号)。

我相信以下是“正确的”:

^\d{1,3}(.\d{3})*(,\d+)?-$

这匹配例如:

  • 1-
  • 12-
  • 123-
  • 123.456-
  • 123.456.789-
  • 1,0-
  • 1,01-
  • 1,001-
  • 1,0001-
  • 123.456,01-
  • 123.456.789,0001-
  • ETC

但不会匹配,例如

  • 1234-
  • 123,-
  • 123.4-
  • 123.1,001-
  • 123.45-
  • 1..1..1-
  • 1.1.1-
  • 1,1,1-
  • .,-
  • 等等
于 2013-03-19T15:06:25.617 回答
2

确切的正则表达式应为:\d{1,3}(?:\.\d{3})*(?:,\d+)?-

于 2013-03-19T13:41:29.640 回答
1

尝试这样的事情:

[0-9.,]+-
于 2013-03-19T13:38:48.480 回答
1

\d{1,3}(?:[,]\d{3})*-考虑到国际化。下面的一个允许字符串1..9匹配,这确实不应该。

于 2013-03-19T13:39:37.937 回答