正则表达式:使用换行符匹配两个字符串之间的数字

时间:2017-08-01 14:36:48

标签: javascript regex

我想只匹配以 ZW-Summe 结尾的字符串的值与RegEx(JavaScript,所以没有后悔 - 请考虑:我必须使用正则表达式):

[here is a lot more data with line breaks and so on...]
2,550%Zinsen               83,72ZW-Summe U
St         83,72Umsatzs? [more lines...]

问题:每次都可以换行,甚至可能发生这种情况:

[data....] 2,550%Zinsen               83,7
2ZW-Summe U
St         83,72Umsatzs? [more lines...]

我的目标是仅匹配83,72,没有 ZW-Summe ,当然价值可以改变。可能的值:

  • 1.000,22
  • 0,22
  • 222,22
  • 100.000,22等。

我必须使用 ZW-Summe 字符串来识别该值,因为可能会出现更多值。

我的第一次尝试是((\d{0,3}((\.\d{3})){0,2}),\d{2})ZW-Sum,但这也与ZW-Sum匹配,我无法访问群组 - 主要问题是我不会忽略可能的换行符。

我希望甚至可以匹配某些东西(-VALUE-ZW-Summe)而不是忽略结果中的ZW-Summe?

感谢您的任何建议。

1 个答案:

答案 0 :(得分:0)

这对我有用,而且非常简单:/([\d,.\n]+)(?=ZW-Summe)/g

它基本上只匹配一系列数字,逗号,句号和换行符,其中所述系列之后是ZW-Summe?=,正向前瞻)。 g标志使其忽略换行符。

但是,在运行之后,请确保删除换行符(即match = match.replace('\n', '');)。