我在SO上发现了很多关于此的问题, 但他们总是认为这个词在开头或结尾。
假设这个词是猫,我不想匹配其中任何一个:
一个常见的想法似乎是这样的:
^([^c]*|c([^a]|$|a([^t]|$)))*
正则表达式的工作原理如下:
匹配除c之外的任何内容
[^c]*
或者,如果您匹配了c,则只匹配a以外的内容,或单词([^a]|$
的结尾
或者,如果您匹配了一个ca,那么只匹配t以外的内容,或单词([^t]|$)
的结尾
示例工作正常,但它们不匹配。
但是正则表达式可能会混淆:
以下示例匹配: