Как искать определенное слово / слова из строки, игнорируя определенный символ, используя re python - PullRequest
0 голосов
/ 07 февраля 2019

Есть строка, в которой я хочу найти определенные слова, используя регулярное выражение.Но сценарий заключается в том, что я получаю пробел внутри слова.Итак, согласно приведенному ниже примеру, я хочу найти все Оклахома и Канзас , но в обоих словах есть место.Нет уверенности в том, что где и сколько места будет в поисковом слове, оно может быть где угодно.

Можно ли каким-либо образом искать слово или имя, игнорируя какой-либо пробел внутри?

Моя строка:

Texas           West           South         M i rando    North  Okl ahoma
N.W.           K ansas           LLS\r\n    K an sas                                           
Panhandle        Texas           Texas         Oklaho ma            Texas         
Panhandle      Oklahoma    Kan sas

Требуемый вывод:

Oklahoma
Kansas
Kansas
Oklahoma
Oklahoma
Kansas

1 Ответ

0 голосов
/ 07 февраля 2019
import re

string = '''Texas           West           South         M i rando    North  Okl ahoma
N.W.           K ansas           LLS\r\n    K an sas                                           
Panhandle        Texas           Texas         Oklaho ma            Texas         
Panhandle      Oklahoma    Kan sas'''

words = ['Kansas', 'Oklahoma']
pattern = '|'.join(r'\s*'.join(word) for word in words)
print(pattern)
print(re.findall(pattern, string))

Выход:

K\s*a\s*n\s*s\s*a\s*s|O\s*k\s*l\s*a\s*h\s*o\s*m\s*a
['Okl ahoma', 'K ansas', 'K an sas', 'Oklaho ma', 'Oklahoma', 'Kan sas']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...