簡體   English   中英

正則表達式

[英]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)*$

分解

(?! )是負面展望,這意味着(由|分隔)內的任何內容都將導致驗證失敗

\\/\\/正在//帶有轉義字符

\\\\\\\\\\\\帶有轉義字符

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

\\w允許空格

試試這個:

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

解釋

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

[^;\\^'] => 我們的黑名單。 不匹配; '^ ,匹配其他所有內容。

(?!\\-)(?!\\\\)(?!\\/) => 在黑名單后不要匹配\\/'

所以我們允許一切,但; ' 但僅限於在字符前面或后面沒有\\/'的情況下。 這意味着這些字符只出現一次是允許的。

編輯:

這僅匹配單個字符。 更好地使用已接受的答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM