获取搜索字符串中的模式文本

时间:2013-05-25 14:25:54

标签: python regex

我正在尝试做我认为是一个简单的正则表达式查询。在下面的示例中,我试图找到“副词”和“动词”之间的所有文本。我得到的输出是'verb',我认为这是文本'动词'在'副词'中的结果。

re.search(r'adverb.+noun|\bverb', 'adverb with text verb text from here on')

我的问题是如何获得我需要的文字?正如你所知,我需要迎合多个结束词。

如果它有所作为,我使用的是Python 2.7。

1 个答案:

答案 0 :(得分:5)

你的正则表达式应该是这样的:

您可以使用re.search()当然..

import re
string = 'adverb with text verb text from here on'
print re.findall(r'adverb(.*?)verb', string)

它打印出来:

# [' with text ']

<强>编辑:

如果你想获得noun,请使用:

import re
string = [
    'adverb with text verb text from here on',
    'adverb with text noun text from here on'
]
print [re.findall(r'adverb(.*?)(?:verb|noun)', s) for s in string]

现在你有了:

# [[' with text '], [' with text ']]