[英]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)*$
(?! )
是負面展望,這意味着(由|
分隔)內的任何內容都將導致驗證失敗
\\/\\/
正在//
帶有轉義字符
\\\\\\\\
是\\\\
帶有轉義字符
.
允許任何字符(空格除外)
\\w
允許空格
試試這個:
(?<!\-)(?<!\\)(?<!\/)[^;\^'](?!\-)(?!\\)(?!\/)
解釋
(?<!\\-)(?<!\\\\)(?<!\\/)
=> 不要匹配黑名單前的\\
或/
或'
。
[^;\\^']
=> 我們的黑名單。 不匹配;
或'
或^
,匹配其他所有內容。
(?!\\-)(?!\\\\)(?!\\/)
=> 在黑名單后不要匹配\\
或/
或'
。
所以我們允許一切,但;
和'
。 但僅限於在字符前面或后面沒有\\
或/
或'
的情況下。 這意味着這些字符只出現一次是允許的。
編輯:
這僅匹配單個字符。 更好地使用已接受的答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.