我想查找一個短語,匹配它後面的幾個單詞,但如果我找到另一個特定短語,請儘早停止。正則表達式:匹配一個單詞或最大單詞數
例如,我想匹配「去」的三個詞,但如果遇到「嘗試」,停止匹配過程。因此,例如「去月神公園」將導致「月神公園」; 「前往祕魯首都」將以「首都之城」和「去月球嘗試一些芝士蛋糕」爲結果帶來「月球」。
它可以用一個簡單的正則表達式完成嗎(最好在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