正则表达式

Regular expression

我在 asp.net 页面中有一个 aspx:memo 控件。该控件有一个正则表达式验证器。如果备忘录中插入的文本与正则表达式不同,则验证器会触发错误。 所以我想接受除这些以外的所有字符:

1) -- (double hyphen)
2) // (double slash)
3) ' (Single quote)
4) \ (double backslash)
5) ^ (Caret)
6) ; (Semicolon)

到目前为止我已经创建了这个表达式:

^[\na-zA-Z0-9 .,~?`~!@():#&%=+΄<>\\-\/_&quot;\]\[\}\{]*$

我已经把我接受的每一个字符都写在了备忘录里。所以问题是,对于这个表达式,我接受斜杠和反斜杠或连字符,即使它们是单个或多个。 我怎样才能禁止双斜杠或连字符但允许单斜杠或连字符。

我已经为此浪费了很多时间。非常感谢您的帮助。

提前致谢。

试试这个:

(?<!\-)(?<!\)(?<!\/)[^;\^'](?!\-)(?!\)(?!\/)

说明

(?<!\-)(?<!\)(?<!\/) => 不要匹配黑名单前的\/'

[^;\^'] => 我们的黑名单。不要匹配 ;'^,匹配其他所有内容。

(?!\-)(?!\)(?!\/) => 点不匹配黑名单后的\/'

所以我们允许除 ;' 之外的所有内容。但前提是字符前后没有 \/'。这意味着允许这些字符出现一次。

编辑:

这只匹配单个字符。最好使用已接受的答案。

^((?!--|\/\/|'|\\|\^|;).|\w)*$

细分

(?! ) 是负面的前瞻性,这意味着其中的任何内容(由 | 分隔)都会导致验证失败

\/\/ being // with escaped characters

\\ being \ with escaped characters

. 允许任何字符(空格除外)

\w 允许空格