我试图创建一个排除组的Emacs正则表达式。 [^]排除一个集合中的单个字符,但是我想排除特定的字符序列:像[^(not | this)],因此包含“not”或“this”的字符串不匹配。
原则上,我可以写([^ n] [^ o] [^ t] | [^ …]),但还有另一种更清洁的方法吗?
首先:[^ n] [^ o] [^ t]不是一个解决方案。这也会排除像nil([^ n]不匹配),bob([^ o]不匹配)或cat([^ t]不匹配)的单词。
原文链接:https://www.f2er.com/regex/357392.html但是,可以使用基本语法来构建一个正则表达式,该语法匹配既不包含也不包含此字符串的字符串:
^([^nt]|n($|[^o]|o($|[^t]))|t($|[^h]|h($|[^i]|i($|[^s]))))*$
此正则表达式的模式是允许任何不是单词的第一个字符的字符,也可以是单词的前缀,而不是整个单词。