如何通过使用再蟒蛇忽略特定字符搜索字符串从特定字/秒

问题描述 投票:-1回答:1

有一个在我想要搜索使用正则表达式的特定词的字符串。不过问题是,我的字内获得空白字符。因此,根据下面的例子我想搜索所有的俄克拉何马州和堪萨斯州,但有空间在这两个词。这是不能确定在何处以及有多少空间将出现在搜索词,它可以在任何地方。

有没有办法,我可以搜索一个词或名称忽略内的任何空间呢?

我的字符串:

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
python regex
1个回答
1
投票
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']
© www.soinside.com 2019 - 2024. All rights reserved.