【发布时间】:2018-08-26 01:37:49
【问题描述】:
有没有一种简单的方法来匹配一个类中的所有字符,除了某些字符集?例如,如果在我可以使用 \w 匹配所有 unicode 单词字符集的语言中,有没有办法从匹配中排除下划线“_”之类的字符?
我想到的唯一想法是在每个字符周围使用负前瞻/后视,但是当我实际上只想将一个字符与正匹配和负匹配进行匹配时,这似乎比必要的复杂。例如,如果 & 是 AND 运算符,我可以这样做...
^(\w&[^_])+$
【问题讨论】:
-
您使用的是哪种风格的正则表达式? (例如 Perl、Java 等)
-
什么正则表达式风格/语言? stackoverflow.com/q/3201689/139010
-
在 .NET 中,您可以使用
[\w-[_]]排除下划线。 -
我最常使用的正则表达式引擎是基于 java 的,虽然是一个旧的实现(无论 CF8 在后台使用什么)。但是我在 javascript 和 python 中也有这个需求。
-
你是说ColdFusion?那是基于 JavaScript,而不是 Java。而且它的
\w只识别ASCII 字字符([A-Za-z0-9_]),而不是完整的Unicode 集。 Python 的内置re风格也是如此。
标签: regex set-difference character-class