2016-05-08 55 views
0

我是一個正則表達式的初學者。我想寫一個拒絕字符列表的正則表達式。這些字符包括^$\/()|?+*[]{}><如何創建拒絕正則表達式

任何幫助表示讚賞。

編輯: 我想測試這些字符是否存在於VB webform應用程序中。

Dim login As String 
Dim password As String 
Dim reject As String = "[$^\/()|?+*[]{}><]" 
Dim rgx As New Regex(reject) 
Dim matches As MatchCollection 
Dim matches2 As MatchCollection 
login = txtLogin.Text 
password = txtPassword.Text 
matches = rgx.Matches(login) 
matches2 = rgx.Matches(password) 
If matches.Count > 0 Then 
    loginErr.Text = "Login can not contain^$ \/() | ? + * [ ] { } ><" 
Else 
    loginErr.Text = "" 
End If 
If matches2.Count > 0 Then 
    passwordErr.Text = "Password can not contain^$ \/() | ? + * [ ] { } ><" 
Else 
    passwordErr.Text = "" 
End If 
+0

你想測試,看是否任何這些角色都存在?或者你希望模式只匹配不包含任何這些字符或其他字符的字符串? –

+0

順便說一下,因爲有很多不同的正則表達式,所以指定你使用哪種語言,工具或框架來應用這個模式通常是一個好主意。雖然,無可否認,在這種簡單的情況下,它可能無所謂。 –

+0

一旦你回答我的第一個問題,並完全定義你在找什麼,接下來我會建議你展示你試過的東西,解釋一下它不適合你,和/或解釋什麼是混淆你。通常,由於這是一個問答網站,因此包含某種問題也是一個好主意。 –

回答

0

,我與你的代碼中看到的唯一的問題是,你是不是正確轉義特殊字符\^]在字符類:

Dim reject As String = "[$\^\\/()|?+*[\]{}><]" 
+0

非常感謝!另一個問題,如果你不介意。如果我想測試除a-zA-Z0-9以外的其他任何東西,我該如何編寫正則表達式? – Rascion

+1

@Rascion你可以用一個^字符對它進行預處理,例如[^ a-zA-Z0-9],否定字符類。但是,僅使用預定義的\ W類可能適合您的需求。 –