需要正则表达式匹配模式但不包括子字符串

时间:2015-05-26 17:29:54

标签: regex

我相信一定有类似的问题必须在这里发布,我已经完成了一些并尝试了很多,但我无法为我的要求创建一个正则表达式。

我需要一个正则表达式,可以匹配任何包含单词衬衫或衬衫但没有前缀为单词t,tee或polo的字符串

例如,以下内容应匹配:

Full sleeve shirt
Full sleeve casual shirt
half sleeve formal shirts

所有这些都不匹配:

half sleeve polo shirt
sleeveless tshirt
yellow t shirt
t.shirt
t-shirt
black full sleeve tee shirt

我知道我需要寻找模式\bshirts?\b才能找到衬衫和衬衫。但是为了排除tee,t和polo,我很难过。研究了一些关于负面前瞻但不太清楚如何使用的研究。

2 个答案:

答案 0 :(得分:3)

在python中,您可以将此正则表达式用于多个负面的lookbehind模式:

(?<!t.)(?<!tee.)(?<!polo.)\bshirts?\b

RegEx Demo

答案 1 :(得分:2)

^.*(?<!t|t.|tee.|polo.)\bshirts?\b

This updated solution may work for you.