RegEx для извлечения адреса из США не работает, когда адрес разделен переводом строки

Вы возвращаете ссылку на ret , которая является переменной в стеке.

2
задан Michał Turczyn 19 March 2019 в 08:39
поделиться

3 ответа

Попробуйте этот паттерн \d+\s+[\w ]+[\s,]+[\w ]+[\s,]+\w+ \d+

Объяснение:

\d+\s+ - сопоставить одну или несколько цифр, затем сопоставить одно или более пробелов

[\w ]+[\s,]+ - сопоставить один или несколько символов слова или пробел, затем один или несколько пробелов или запятая

\w+ \d+ - сопоставить одно или несколько символов слова, пробел и одну или несколько цифр

Демо [ 114]

0
ответ дан Michał Turczyn 19 March 2019 в 08:39
поделиться

Вы можете упростить свой шаблон до чего-то подобного для сопоставления адреса, будь то в одну строку или в несколько строк.

\b\d+(?:\s+[\w,]+)+?\s+[a-zA-Z]{2}\s+\d{5}\b

Regex Объяснение:

  • \b\d+ - Начинается поиск по границе слова с одной или несколькими цифрами
  • (?:\s+[\w,]+)+? - Не - шаблон группировки, который соответствует одному или нескольким пробелам, а затем тексту, содержащему один или несколько символов слова и запятую, и все это один или несколько раз, но не жадным образом.
  • \s+[a-zA-Z]{2} - Соответствует одному или нескольким пробелам, а затем двум буквенным символам, чтобы ожидать текст, подобный CA, NY
  • \s+\d{5}\b - За ним следует один или несколько пробелов, а затем пять цифр с границей слова чтобы избежать частичного совпадения в большом тексте

Демо

0
ответ дан Pushpesh Kumar Rajwanshi 19 March 2019 в 08:39
поделиться

Добавить ? к проверке [ ,]:

(\d+)[ \n]+((\w+[ ,]?)+[\$\n, ]+){2}([a-zA-Z]){2}[$\n, ]+(\d){5}
0
ответ дан ALFA 19 March 2019 в 08:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: