我想查找一个短语,匹配它后面的几个单词,但如果我找到另一个特定短语,请尽早停止。正则表达式:匹配一个单词或最大单词数
例如,我想匹配“去”的三个词,但如果遇到“尝试”,停止匹配过程。因此,例如“去月神公园”将导致“月神公园”; “前往秘鲁首都”将以“首都之城”和“去月球尝试一些芝士蛋糕”为结果带来“月球”。
它可以用一个简单的正则表达式完成吗(最好在Python中)?我尝试过所有我能想到的组合,但失败惨惨:)。
我想查找一个短语,匹配它后面的几个单词,但如果我找到另一个特定短语,请尽早停止。正则表达式:匹配一个单词或最大单词数
例如,我想匹配“去”的三个词,但如果遇到“尝试”,停止匹配过程。因此,例如“去月神公园”将导致“月神公园”; “前往秘鲁首都”将以“首都之城”和“去月球尝试一些芝士蛋糕”为结果带来“月球”。
它可以用一个简单的正则表达式完成吗(最好在Python中)?我尝试过所有我能想到的组合,但失败惨惨:)。
这一个匹配3({1,3}
)以下going to the
,只要他们不跟去尝试的话((?!to try)
):
import re
infile = open("input", "r")
for line in infile:
m = re.match("going to the ((?:\w+\s*(?!to try)){1,3})", line)
if m:
print m.group(1).rstrip()
输出
luna park
capital city of
moon
请告诉我们您的最成功的尝试。 – NPE 2013-03-22 07:25:33
只为了这里的乐趣是一个非正则表达式的解决方案:'''.join(text.split('去'')[1] .split('尝试')[0] .split()[:3]) ' – jamylak 2013-03-22 08:00:33