正则表达式
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 .,~?`~!@():#&%=+΄<>\\-\/_"\]\[\}\{]*$
我已经把我接受的每一个字符都写在了备忘录里。所以问题是,对于这个表达式,我接受斜杠和反斜杠或连字符,即使它们是单个或多个。
我怎样才能禁止双斜杠或连字符但允许单斜杠或连字符。
我已经为此浪费了很多时间。非常感谢您的帮助。
提前致谢。
试试这个:
(?<!\-)(?<!\)(?<!\/)[^;\^'](?!\-)(?!\)(?!\/)
说明
(?<!\-)(?<!\)(?<!\/)
=> 不要匹配黑名单前的\
或/
或'
。
[^;\^']
=> 我们的黑名单。不要匹配 ;
或 '
或 ^
,匹配其他所有内容。
(?!\-)(?!\)(?!\/)
=> 点不匹配黑名单后的\
或/
或'
。
所以我们允许除 ;
和 '
之外的所有内容。但前提是字符前后没有 \
或 /
或 '
。这意味着允许这些字符出现一次。
编辑:
这只匹配单个字符。最好使用已接受的答案。
^((?!--|\/\/|'|\\|\^|;).|\w)*$
细分
(?! )
是负面的前瞻性,这意味着其中的任何内容(由 |
分隔)都会导致验证失败
\/\/
being //
with escaped characters
\\
being \
with escaped characters
.
允许任何字符(空格除外)
\w
允许空格
我在 asp.net 页面中有一个 aspx:memo 控件。该控件有一个正则表达式验证器。如果备忘录中插入的文本与正则表达式不同,则验证器会触发错误。 所以我想接受除这些以外的所有字符:
1) -- (double hyphen)
2) // (double slash)
3) ' (Single quote)
4) \ (double backslash)
5) ^ (Caret)
6) ; (Semicolon)
到目前为止我已经创建了这个表达式:
^[\na-zA-Z0-9 .,~?`~!@():#&%=+΄<>\\-\/_"\]\[\}\{]*$
我已经把我接受的每一个字符都写在了备忘录里。所以问题是,对于这个表达式,我接受斜杠和反斜杠或连字符,即使它们是单个或多个。 我怎样才能禁止双斜杠或连字符但允许单斜杠或连字符。
我已经为此浪费了很多时间。非常感谢您的帮助。
提前致谢。
试试这个:
(?<!\-)(?<!\)(?<!\/)[^;\^'](?!\-)(?!\)(?!\/)
说明
(?<!\-)(?<!\)(?<!\/)
=> 不要匹配黑名单前的\
或/
或'
。
[^;\^']
=> 我们的黑名单。不要匹配 ;
或 '
或 ^
,匹配其他所有内容。
(?!\-)(?!\)(?!\/)
=> 点不匹配黑名单后的\
或/
或'
。
所以我们允许除 ;
和 '
之外的所有内容。但前提是字符前后没有 \
或 /
或 '
。这意味着允许这些字符出现一次。
编辑:
这只匹配单个字符。最好使用已接受的答案。
^((?!--|\/\/|'|\\|\^|;).|\w)*$
细分
(?! )
是负面的前瞻性,这意味着其中的任何内容(由 |
分隔)都会导致验证失败
\/\/
being//
with escaped characters
\\
being\
with escaped characters
.
允许任何字符(空格除外)
\w
允许空格