Шаблон регулярного выражения для разделения на основе первых и последних слов - PullRequest
0 голосов
/ 05 сентября 2018
address='''No-33-6,BEML Layout,Basaveshwaranagara 8th Main,Kamala Nagar,Near Academy Of Science and Knowledge,Bengaluru,Karnataka 560079'''

Я пытался использовать приведенный ниже шаблон. Но. * Соответствует всем символам

re.findall('[n][o].*',adress)

Соответствие основано на первом члене, который является Нет, и последнем члене, 6 цифр, пин-код / ​​почтовый индекс

output:No-33-6,BEML Layout,Basaveshwaranagara 8th Main,Kamala Nagar,Near Academy Of Science and Knowledge,Bengaluru,Karnataka 560079

Ответы [ 3 ]

0 голосов
/ 05 сентября 2018

Если я правильно понимаю ваш запрос, вы хотите сопоставить строковый шаблон, который начинается с

нет

Нет

И заканчивается последним членом 6 цифр пин-код / ​​почтовый индекс

т.е. 560079

И весь текст между ними.

Вы можете достичь этого следующим образом:

import re
address='''No-33-6,BEML Layout,Basaveshwaranagara 8th Main,Kamala Nagar,Near Academy Of Science and Knowledge,Bengaluru,Karnataka 560079'''
matches = []
matches = re.findall(r'\b(?=No)(.*)\b(\d{6,})\b', address)

Возвращает:

[('No-33-6, макет BEML, 8-й Майн Басавешваранагара, Камала Нагар, Ближняя Академия Наук и Знаний, Бангалор, Карнатака', '560079')]

см. Здесь: https://regex101.com/r/2pXcMI/4

0 голосов
/ 05 сентября 2018
re.findall('/No.+\d+/g', string_to_search)

От начала до конца:

Во-первых, мы хотим сопоставить префикс «Нет», поэтому мы просто используем две буквы без квадратных или квадратных скобок.

Далее мы должны убедиться, что к номеру добавлен суффикс. В большинстве случаев длина этого числа не изменится, однако мой ответ включает метод для любого целого числа длины.

Если оба они есть, то совпадение истинно.

Поэтому мы хотим собрать всю информацию внутри. Это делается с помощью .+, что означает «один или несколько символов за исключением символа новой строки»

0 голосов
/ 05 сентября 2018

Как насчет следующего?

([N][o]).*\b([0-9].....).*?$

Это работает для вас? Должно совпадать с первым словом на основе вашего регулярного выражения, которое вы пробовали, а затем захватить последние 6 цифр в адресе. Вы можете проверить это здесь https://regex101.com

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