我正在嘗試撰寫一個以“#”開頭的運算式,并接受以下型別的路徑,并且只接受字符 Az/az 并且不接受數字或特殊字符:示例有效路徑:
#/
#/word/word
#/word
#/word/word/word
這是我目前擁有的:
#\/\D |\/\D
我也試過:
#\/\D |\s\/^[A-Za-z\s]*$
它正確過濾了 85% 的路徑,但它仍然接受具有有效特殊字符的路徑,例如 "#/word/word?test=word" "#/word/word=%"
我不太確定我錯過了什么。
uj5u.com熱心網友回復:
我將正則運算式表述為:
^(?:#/|#/[A-Za-z] (?:/[A-Za-z] )*)$
這個正則運算式說匹配:
^從字串的開頭(?:#/#/自己匹配|或者#/匹配#/[A-Za-z]后跟路徑名(?:/[A-Za-z] )*后跟零個或多個其他路徑
)$字串的結尾
演示
uj5u.com熱心網友回復:
您可以開始匹配,#/然后可以選擇匹配尾隨部分:
^#\/(?:[A-Za-z] (?:\/[A-Za-z] )*)?$
解釋
^字串的開始#\/匹配#/(?:非捕獲組[A-Za-z]匹配 1 個字符 A-Za-z(?:\/[A-Za-z] )*可選擇重復/和 1 個字符 A-Za-z
)?關閉非捕獲組并使其可選$字串結束
查看正則運算式演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/527117.html
