问题是我试图匹配一个词(任何一方的空格),如果它存在。Python:匹配一个单词(用空格)
我有工作(至少大部分)的代码是:
import re, os
str1 = "the host offered $ rec*ting advice"
str1 = re.sub('[*]', '(.*?)', str1)
str1 = re.sub('[$]', '(.*?)', str1)
str1 = str1.lower()
print str1
previous_dir = os.getcwd()
os.chdir('testfilefolder')
for filename in os.listdir('.'):
with open(filename) as f:
file_contents = f.read().lower()
output = re.search("%s" % str1, file_contents)
if output:
print (" Match found in " + filename))
因此,举例来说,如果我有字符串"the host has offered some recruiting advice"
并做字符串搜索将无法正常工作 - 由于美元符号(这是由(.*?)
取代。有趣的是,如果我有"the host offered $ rec*ting advice"
- 注意“一些”已经消失,因此这个作品 - 所以我可以匹配1个词,如果它存在 - 看起来像(.*?)
应该匹配一个字符,每个单词至少有一个字符,所以我想这就是为什么它可行。我不确定(.*?)
是否适合使用,但它是bes在我的研究结束后,我已经开始工作了。任何意见,将非常感激。注意上面我在文字中有(.*?)
,它似乎显示(.*?)
是某种标记,只是在(.*?)
之间对字符串进行格式化。
但是我想匹配0或1个单词。我发现了一些类似于\ bs + \ b的东西(我不太记得,但又找不到它),但无法让它正常工作。我知道\ b应该匹配一个单词可能存在的任何一边的空字符串。
我appologize,如果这个问题被问到别处,但似乎我发现的一切(我仍然可以找到并能够得到工作)正在寻找一个特定的词 - 但我期待看到,如果只有0或1存在:
How do I match a word in a text file using python?
我指的网页示例是:http://stackoverflow.com/questions/5228448/how-do-i-match-a-word-in-a-text-file-using-python – Relative0
'sub'的第二个参数是*替换*模式。任何与'[*]'(一个星号)匹配的内容都会被第二个字符串'(。*?)'替代,它只支持引用捕获组的替换占位符。 –
你的问题很难理解。用两边的空格来匹配一个词:'re。搜索('yourword',str1)'。这不符合你的要求? – MikeM