正则表达式 – 如何编写排除而不是匹配的正则表达式,例如not(this | string)?

前端之家收集整理的这篇文章主要介绍了正则表达式 – 如何编写排除而不是匹配的正则表达式,例如not(this | string)?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图创建一个排除组的Emacs正则表达式。 [^]排除一个集合中的单个字符,但是我想排除特定的字符序列:像[^(not | this)],因此包含“not”或“this”的字符串不匹配。

原则上,我可以写([^ n] [^ o] [^ t] | [^ …]),但还有另一种更清洁的方法吗?

首先:[^ n] [^ o] [^ t]不是一个解决方案。这也会排除像nil([^ n]不匹配),bob([^ o]不匹配)或cat([^ t]不匹配)的单词。

但是,可以使用基本语法来构建一个正则表达式,该语法匹配既不包含也不包含此字符串的字符串:

^([^nt]|n($|[^o]|o($|[^t]))|t($|[^h]|h($|[^i]|i($|[^s]))))*$

此正则表达式的模式是允许任何不是单词的第一个字符的字符,也可以是单词的前缀,而不是整个单词。

原文链接:https://www.f2er.com/regex/357392.html

猜你在找的正则表达式相关文章