我正在查看用於驗證來自(OWASP Regex Repository)的各種數據類型的正則表達式。OWASP正則表達式存儲庫:這是正確的正則表達式嗎?
一個在那裏的正則表達式被稱爲safetext
,看起來像:
^[a-zA-Z0-9\s.\-]+$
我的第一個問題是:
這是正則表達式正確嗎?
補充問題
如果這個Regex Repository有什麼好處呢?
UPDATE
我主要是好奇,在鏈接頁面的正則表達式的轉義.
我正在查看用於驗證來自(OWASP Regex Repository)的各種數據類型的正則表達式。OWASP正則表達式存儲庫:這是正確的正則表達式嗎?
一個在那裏的正則表達式被稱爲safetext
,看起來像:
^[a-zA-Z0-9\s.\-]+$
我的第一個問題是:
這是正則表達式正確嗎?
補充問題
如果這個Regex Repository有什麼好處呢?
UPDATE
我主要是好奇,在鏈接頁面的正則表達式的轉義.
描述說,「大寫和小寫字母和所有數字」。但正則表達式^[a-zA-Z0-9\s.\-]+$
也允許空格,句點和連字符。
正則表達式確保該字符串只包含字母數字字符,空格,句點和連字符,並且該字符串不爲空。我不熟悉上下文,但我猜他們將其命名爲safetext的原因可能是它不允許使用尖括號(同時允許在文本區域中正常使用的字符),從而防止腳本注入。
期間.
不是字符類內的元字符[]
。所以你不需要在方括號內避開句點。
字符類內的唯一special characters或元字符是閉合支架(
]
),反斜槓(\
),插入符號(^
)和連字符(-
)。通常的元字符是字符類中的普通字符,不需要用反斜線進行轉義。
只要您將它們放在字符類的開始或結尾,大多數正則表達式都允許使用未轉義的連字符。 [!#@-]
中的連字符是字面意思,但[!#[email protected]]
中的連字符不是。第一種是指四個符號中的一個而第二個裝置!
和所有的字符之間(幷包括)的#
和@
,即ASCII 35至64
至於如果庫是良好的ASCII值畢竟,我會說這是一個開始的好地方。您可能需要按照您的要求修改它們。例如,他們的密碼正則表達式顯示瞭如何使用正向查找來檢查是否至少出現一個小寫/大寫/數字等。但它只允許字符串長度在4到8之間:您可能想要允許更長的密碼。