JavaScript RegEx不包括某些单词/短语?

van*_*con 10 javascript regex

如何编写一个RegEx模式来测试一个字符串是否包含几个带有结构的子字符串:

"cake.xxx"
Run Code Online (Sandbox Code Playgroud)

其中xxx 不是 "奶酪"或"牛奶"或"黄油".

例如:

  • "I have a cake.honey and cake.egg"应该回来true,但是
  • "I have a cake.**milk** and cake.egg"应该回来false.

ste*_*ema 20

这是你想要的吗?

^(?!.*cake\.(?:milk|butter)).*cake\.\w+.*
Run Code Online (Sandbox Code Playgroud)

在Regexr上看到它

这将匹配完整行,如果它包含"cake.XXX"但不是它的"cake.milk"或"cake.butter"

.*cake\.\w+.*如果有"蛋糕",这部分将匹配.其次是至少一个wrod角色.

(?!.*cake\.(?:milk|butter)) 这是一个负向前瞻,如果字符串包含您不允许的单词之一,这将阻止匹配

^ 将模式锚定到字符串的开头