2016-11-28 78 views
-2

我正在寻找一个python正则表达式,它匹配一个字符串前面3个单词的句子。python正则表达式来匹配有n个词的句子

例如说我有句子“这是测试”我想匹配这一个,只有在字符串测试之前有任何3个单词。

re.match(r'(\d\w+\d){3}test', "this is the test") 

认为上述句子会工作,但没有奏效。

+0

你用'\ d'来表示什么? –

+1

're.match(r'(\ w + \ s){3} test','这是测试')''怎么办? – Mohammad

+0

字边界...用\ d缠绕它认为将把每个字符集作为一个单词... @ mohammad ...谢谢你的工作。 – DeadDjangoDjoker

回答

0
  • 如果你想比赛串有3个字,用空格(或多个)分离,然后“测试”:(\b){3}test
  • 如果你想提取第3个字,用空格隔开(S其次)通过“测试”:(\w+\s+){3}test
  • 如果你想同样的事情,但要允许停止字之前的空白(S):(\w+\s+){3}\w?test
  • 如果你想要做的一样,但用绳子结束 with the stopword:(\w+\s+){3}\w?test$