正则表达式单词匹配

时间:2015-09-09 07:02:12

标签: python regex

我正在尝试使用\b

匹配字符串中的单词

例如

我希望匹配abcde这个词 在字符串xyz abcde dddxyz abcde.html ddd中。我正在使用正则表达式\babcde\b,我想要的是仅匹配第一个字符串而不匹配第二个字符串,因为它包含abcde.html。但是这个正则表达式匹配它们。

如何达到我想要的效果?

3 个答案:

答案 0 :(得分:1)

您可以使用否定前瞻来避免匹配任何abcde后跟句点和字母数字:

\babcde\b(?!\.\w+)

请参阅demo

(?!\.\w+)否定前瞻进行检查,但不会考虑周期和字母数字的存在,如果它们存在,则不返回任何匹配。您可以将\w+替换为\S+(1个或多个非空格字符),使其更通用。

答案 1 :(得分:1)

您还可以使用积极的预测

\babcde\b(?=\s)

演示here

(?=\s)[\r\n\t\f ]

之后检查任何空格字符babcde

答案 2 :(得分:0)

\ babcde(?=。*?\ b)中 展望未来就是您所需要的。 我马上就用测试链接做一个例子。

更新: http://refiddle.com/2ing

编辑:if by" second string"你的意思是" .html"部分然后这个答案将有效。但如果你的意思是第二个字符串" xyz abcde.html ddd"然后stribizhev有正确的答案。