在我的Django網站中,我允許使用字母數字和/或用戶名@
_
.
+
-
。此外,空白區也是允許的。我寫了一個簡單的正則表達式來確保這一點:'^[\w\[email protected]+-]+$'
。無法通過正則表達式驗證的捕獲字符
這可能是一個明顯的問題,但我如何捕獲字符不傳遞正則表達式驗證?我想在工具提示中向我的用戶顯示這些字符。
在我的Django網站中,我允許使用字母數字和/或用戶名@
_
.
+
-
。此外,空白區也是允許的。我寫了一個簡單的正則表達式來確保這一點:'^[\w\[email protected]+-]+$'
。無法通過正則表達式驗證的捕獲字符
這可能是一個明顯的問題,但我如何捕獲字符不傳遞正則表達式驗證?我想在工具提示中向我的用戶顯示這些字符。
您可以使用'[^...]'
表示法來否定字符集'...'
。下面給你一組的所有不需要的字符:
> name = 'abc%&/()45 -:'
> set(re.findall(r'[^\w\[email protected]+-]', name))
set(['%', '&', ')', '(', '/', ':'])
用方括號裏面的克拉(例如[^...]
)使得它的倒數。因此,例如,[A-Za-z0-9_]
會匹配字母數字和下劃線,而[^A-Za-z0-9_]
會匹配任何不是而是字母數字或下劃線。在你的情況下,你似乎想要的正則表達式是r'^[^\w\s\.\@\+\-]+$'
。