3

我写了一个正则表达式,它应该匹配一个没有空格、正斜杠或反斜杠的字符串。问题是,我收到“未终止的集合”错误。

我的正则表达式:

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

在我添加反斜杠片段之前,它按预期工作,现在我得到了错误。不完全确定我做错了什么。这是我第一次使用正则表达式的重要经验。

任何意见,将不胜感激。

4

2 回答 2

9

您不小心逃脱了]正则表达式中的关闭。

试试这个:

                Regex       C# string
White space     \s          "\\s"
Backslash       \\          "\\\\"
Slash           /           "/"
                \s\\/       "\\s\\\\/"
Regex checkForSpace = new Regex("^[^\\s\\\\/]+$");
于 2013-07-02T22:55:38.887 回答
6

你遇到了反斜杠转义。正则表达式和 C# 字符串都需要它。为避免 C# 需要它,请将 @ 符号放入。

尝试这样做(在字符串的开头使用@)

new Regex(@"^[^\s/\\]+$");
于 2013-07-02T22:50:49.350 回答