排除空格、正斜杠和反斜杠的正则表达式

3
我已经编写了一个正则表达式,旨在匹配不带空格、斜杠或反斜杠的字符串。问题是,我得到了一个“未终止的集合”错误。
我的正则表达式:
Regex checkForSpace = new Regex("^[^\\s\\/\\]+$");

它在我添加反斜杠片段之前正常工作,现在我收到了错误。不太确定我做错了什么。这是我第一次接触正则表达式。

如果有任何建议,将不胜感激。

2个回答

9

你在正则表达式中意外转义了闭合的]

试试这个:

                Regex       C# string
White space     \s          "\\s"
Backslash       \\          "\\\\"
Slash           /           "/"
                \s\\/       "\\s\\\\/"

Regex checkForSpace = new Regex("^[^\\s\\\\/]+$");

6
您遇到了反斜杠符号转义的问题。无论是正则表达式还是C#字符串都需要它。若要避免C#需要它,请在字符串开头加上@符号。

尝试像这样做(在字符串开头加上@符号)

new Regex(@"^[^\s/\\]+$");

+1,但为了避免混淆,您应该将@"..."样式称为verbatim string literals或仅称为verbatim strings参考 - Alan Moore

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接