在Python中匹配后获取行的值

时间:2014-10-22 20:05:08

标签: python python-2.7

我正在尝试编写一个简单的python脚本来搜索匹配的单词但只打印出匹配单词下面的行。

我的xml包含这样的内容

  <field name="some.title">
    <value>VALUE1</value>
  </field>
  <field name="some.otherTitle">
    <value>VALUE2</value>
  </field>
  <field name="MATCHING.Title">
    <value>VALUE3</value>
  </field>
  <field name="some.alternativeRandomTitle">
    <value>VALUE4</value>
  </field>

我能够通读输入并匹配单词并打印出来,但我怎样才能得到低于它的值?在这个例子中,我正在搜索MATCHING.Title,但只想打印VALUE3。我一直在四处寻找,但却无法让它发挥作用。

for line in sys.stdin:
    matching = re.search(r'<field name="MATCHING.Title">',line)
    print matching.group()

1 个答案:

答案 0 :(得分:0)

为全能的正则表达式...

str1 = """
  <field name="some.title">
    <value>VALUE1</value>
  </field>
  <field name="some.otherTitle">
    <value>VALUE2</value>
  </field>
  <field name="MATCHING.Title">
    <value>VALUE3</value>
  </field>
  <field name="some.alternativeRandomTitle">
    <value>VALUE4</value>
  </field>
"""

print re.search(r'<field name="MATCHING.Title">\s(.*)', str1).group(1)