从标签搜索python

时间:2010-06-25 07:10:16

标签: python parsing

我需要python编程方面的帮助: 我需要一个命令,可以搜索文本文件中的标签之间的所有单词。 例如,在文本文件中有<concept> food </concept>。我需要搜索<concept></concept>之间的所有字词并显示它们。 请有人帮忙.......

3 个答案:

答案 0 :(得分:3)

  1. 将文本文件加载到字符串中。
  2. 使用<concept>
  3. 在字符串中搜索pos1 = s.find('<concept>')第一次出现的内容
  4. 使用</concept>
  5. 搜索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)