0

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

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

我的问题是我怎么能在这里得到我需要的文字?正如你所知道的,我需要满足多个尾串词。

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

4

1 回答 1

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 ']]
于 2013-05-25T14:28:30.633 回答