我相信这个问题以前已经被问过了,但我似乎找不到它(或者不知道正确的搜索词)。
基本上,我想要一个正则表达式,它匹配除连字符外的所有非字母数字字符。所以基本上是匹配 \W+ 但要排除 '-'。我不知道如何从预制的集合中排除特定字符。
我相信这个问题以前已经被问过了,但我似乎找不到它(或者不知道正确的搜索词)。
基本上,我想要一个正则表达式,它匹配除连字符外的所有非字母数字字符。所以基本上是匹配 \W+ 但要排除 '-'。我不知道如何从预制的集合中排除特定字符。
\W
是 [^\w]
的简写。因此:
[^\w-]+
一些背景知识:
[…]
定义了一个集合[^…]
否定一个集合\v
集合都可以通过大写字母 \V
(其中 V 是定义集合的任何字母)来否定。[[:alpha:]]
和 [[:alnum:]]
您可以使用:
[^a-zA-Z0-9_-]
或者
[^\w-]
匹配单个非连字符、非字母数字字符。要匹配一个或多个,请在前面加上+
[^\w-]+
将做到这一点。匹配除连字符以外不属于\w
集合的任何字符。
(?U)
以匹配所有特定于语言环境的字符。例如:(?U)[^\w-]
\
转义):(?U)[^\\w-]
\w
的一部分)... - Tim Pietzcker