問題是我試圖匹配一個詞(任何一方的空格),如果它存在。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