特殊字符的正则表达式错误

时间:2014-01-22 10:21:16

标签: c#

代码:

Regex rx = new Regex(@"A(\S");

foreach (Match match in rx.Matches(strinG))
{
  int ii = match.Index;
  Console.WriteLine(ii);
 }

在运行时出错,

system argument exception - " A(\S" not enough )' ".

任何人都可以帮助我,如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

我假设您正在搜索括号,然后反斜杠。

Regex rx = new Regex(@"A\(\S");

答案 1 :(得分:2)

尝试否定匹配:

Pattern regex = Pattern.compile("[^A-Za-z0-9]");

(这只能是A-Z“标准”字母和“标准”数字。

你的角色类中没有空格和下划线我认为跟随正则表达式对你更好:

Pattern regex = Pattern.compile("[^\w\s]");

这意味着匹配[A-Za-z0-9 \ s _]

以外的所有内容

Unicode版本:

Pattern regex = Pattern.compile("[^\p{L}\d\s_]");