感謝這裏的一些最優秀的成員的幫助,我學到了很多關於正則表達式的知識,並且有了這個半工作。我需要添加字符:「,():; - 。?」到我的正則表達式搜索。問題是我傳入輸入搜索字符串的正則表達式,並不知道如何得到這個工作。驗證碼:Python正則表達式輸入搜索字符串的特殊字符
text = open_file.read()
grammarList = raw_input("Enter your grammar string: ");
tags = grammarList.split("^")
tags_pattern = r"\b" + r"\s+".join(r"(\w+)/{0}".format(tag) for tag in tags) + r"\b"
# gives you r"\b(\w+)/NNP\s+(\w+)/CC\s+(\w+)/NNP\b"
from re import findall
start_position = 0
for poem in poemList:
start_position = text.find('<' + poem + '>', start_position)
end_position = text.find('</' + poem + '>', start_position)
searchtext = text [start_position:end_position]
poemname = poem
for oldname, newname in poemtitleswapList.items():
poemname = poemname.replace(oldname, newname)
print poemname
print(findall(tags_pattern, searchtext))
print "\n"
這裏是文本文件的樣本:
To/TO
emotion/NN
for/IN
all/DT
there/EX
is/VBZ
in/IN
it/PRP
,/,
它的偉大工程的一切,但逗號,圓括弧,句號,分號,問號,冒號,破折號和引號,我需要它能夠找到這些東西。任何幫助將不勝感激。
使用XML解析器從文本,而不是'text.find'提取'searchtext'如果'文本「包含XML。 – jfs 2012-02-07 14:12:17
謝謝sebastion,我應該更具體。我仍然在學習我道歉。它搜索正斜槓右側的大寫字母或符號。因此,如果我輸入NN^IN^DT,它將匹配斜槓右側文本文件中順序出現的所有時間。我需要能夠包含這些其他類型的字符,所以我可以運行搜索VBZ^IN^PRP ^, – 2012-02-07 14:18:24