Регулярное выражение: совпадение числа между двумя строками с переносами строк

1

Я хочу совместить только значение этой строки, которая заканчивается с ZW-Summe с RegEx (JavaScript, поэтому нет lookbehind - пожалуйста, подумайте: я должен использовать регулярное выражение):

[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
    Что вы подразумеваете под "... и я не могу получить доступ к группам ..." ?
  • 2
    Re разрывы строк: самое простое было бы удалить их перед соответствием.
Показать ещё 2 комментария
Теги:

1 ответ

0
Лучший ответ

Это сработало для меня, и это довольно просто: /([\d,.\n]+)(?=ZW-Summe)/g? = /([\d,.\n]+)(?=ZW-Summe)/g.

Он в основном просто соответствует ряду цифр, запятых, периодов и строк, где после указанной серии ZW-Summe (?=, Положительный результат). Флаг g заставляет игнорировать разрывы строк.

Однако, после того, как вы запустите его, обязательно match = match.replace('\n', ''); символы новой строки (т.е. match = match.replace('\n', '');).

  • 1
    Хм, разве это не похоже на то, что я написал в комментариях под вопросом?
  • 0
    Это был не мой вопрос, и вы должны были опубликовать его как ответ! (ты все еще можешь!)
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню