正则表达式添加(和/

时间:2013-12-20 15:40:19

标签: c# asp.net regex

我创建了这个正则表达式:

Regex checkTranslation = new Regex(@"[^\p{L}\s0-9!?,.]", RegexOptions.None);

我希望能够添加标志:( /)。 所以现在,我不能写这些文本(text)或text1 / text2 我试图将此添加到我的正则表达式:

Regex checkTranslation = new Regex(@"[^\p{L}\s0-9!?,.\(\)\/)]", RegexOptions.None);

但这似乎不起作用

2 个答案:

答案 0 :(得分:5)

在字符集中,您不需要转义某些字符,例如(和)。以下应该有效:

Regex checkTranslation = new Regex(@"[^\p{L}\s0-9!?,.()/]", RegexOptions.None)

具体来说,只需要对右括号(]),反斜杠(\),插入符号(^)和连字符( - )进行转义(并且对于连字符有特殊情况,如果它出现为第一个字符匹配为普通字符。)

答案 1 :(得分:1)

由于你的正则表达式被反转,你很可能会找到一些你想要包含的其他字符,将它从“黑名单”转换为“白名单”并反转使用匹配结果的代码。

Regex checkTranslation = new Regex(@"[-a-zA-Z]")

只会将允许的单词与连字符匹配。