Как извлечь предыдущую строку из совпадающей строки в регулярных выражениях в JavaScript? - PullRequest
3 голосов
/ 09 июля 2019

Я бы извлек определенную строку из совпадающей строки с помощью регулярных выражений.

IMP QuadroIMP QuadroIMP QuadroIMP QuadroIMP QuadroIMP Quadro IMP Quadrosdfsdfdsfsdfsd 0000022 DE BERNARDINIS ФЕРНАНДО DBRFNN72A03A515E 001468 03-01-1972 12-06-2006 100 * ** * 100 * 100 * * * * * * * 100 * 100 * 100 * 100 * 100 * IMP* из пункта выше, мне нужно найти, где доступна дата, при этом мне нужно извлечь 2-е и 3-е слово из совпавшей строки с одним регулярным выражением

".*\n(\d{2}-\d{2}-\d{4}) (\d{2}-\d{2}-\d{4})" - will result only 

"0000022 DE BERNARDINIS FERNANDO DBRFNN72A03A515E 001468
 03-01-1972 12-06-2006"

из приведенной выше строки, как извлечь "DE BERNARDINIS ", использующий любое условие и в одном и том же регулярном выражении

1 Ответ

3 голосов
/ 09 июля 2019

Для данных вашего примера вы можете добавить соответствующие 1+ цифры в начале строки, а затем использовать 2 группы захвата для соответствия 2-го и 3-го слова.

Если в начале строки не всегда есть цифры, вы можете использовать ^\S+ для совпадения 1+ раз с символом без пробела вместо ^\d+

^\d+ (\w+) (\w+).*\n(\d{2}-\d{2}-\d{4}) (\d{2}-\d{2}-\d{4})
  • ^ Начало строки
  • [0-9]+ (\w+) (\w+) Совпадение 1+ цифр, с последующим совпадением 2 раза пробела и 1+ слов символов
  • .*\n Совпадение с любым символом, кроме новой строки, доконец строки, затем сопоставление новой строки
  • (\d{2}-\d{2}-\d{4}) (\d{2}-\d{2}-\d{4}) 2 группы захвата, соответствующие вашей дате, например шаблон

Regex demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...