我需要python编程方面的帮助:
我需要一个命令,可以搜索文本文件中的标签之间的所有单词。
例如,在文本文件中有<concept> food </concept>
。我需要搜索<concept>
和</concept>
之间的所有字词并显示它们。
请有人帮忙.......
答案 0 :(得分:3)
<concept>
pos1 = s.find('<concept>')
第一次出现的内容
</concept>
pos2 = s.find('</concept>', pos1)
醇>
您寻找的字词是s[pos1+len('<concept>'):pos2]
答案 1 :(得分:3)
有一个很棒的HTML / XML遍历库,名为BeautifulSoup。有了它:
from BeautifulSoup import BeautifulStoneSoup
soup = BeautifulStoneSoup(open('myfile.xml', 'rt').read())
for t in soup.findAll('concept'):
print t.string
答案 2 :(得分:1)
看看正则表达式。 http://docs.python.org/library/re.html
如果您希望使用标记<i>
,请尝试
text = "text to search. <i>this</i> is the word and also <i>that</i> end"
import re
re.findall("<i>(.*?)</i>",text)
以下是findall如何工作的简短说明:它在给定的字符串中查找给定的正则表达式。正则表达式为<i>(.*?)</i>
:
<i>
仅表示开始标记<i>
(.*?)
创建一个群组并尽可能地匹配,直到第一个</i>
,其中包含标记请注意,上述解决方案并不像
那样<i> here's a line
break </i>
因为您只想提取单词。
但是,当然可以这样做:
re.findall("<i>(.*?)</i>",text,re.DOTALL)