如果包含一个字符串并排除另一个字符串,则创建正则表达式以查找整个单词

时间:2014-02-27 00:15:26

标签: regex

我正在尝试创建一个只返回单词的正则表达式,如果它包含一个字符串并且排除另一个字符串。

例如,如果我正在寻找单词“want”而不是“dontwant”,它会找到单词word_want_other,但找不到单词word_want_other_dontwant

目前,我正试图让它与负面预测一起工作(见下文),但这仍然会在其中找到带有“默认”的单词。

.*want.*(?!dontwant).*

Regular expression visualization

Debuggex Demo

1 个答案:

答案 0 :(得分:1)

这有效:

(?=.*want)(?!.*dontwant).*

它查找在行开头包含want且不包含dontwant后的任何字符串,如果它满足所有这些字符串,则返回整行。

我不完全确定为什么最初的想法不起作用,因为有一些工作,我试图回去找到介于两者之间的东西。对不起,没有更好的解释前一个出了什么问题。