所以我想根據它是否只包含語法字符以及數字和字母來驗證字符串(基本上是AZ,az,0-9,加上句點(。),逗號(),分號(:),分號(;),連字符( - ),單引號('),雙引號(「)和圓括號()我得到一個PHP錯誤,說:」編譯失敗:範圍不按順序?在性格CLAS」我應該用什麼正則表達式代碼使用正則表達式驗證正則句語法
這是我目前使用的一個: ^[a-zA-Z0-9_:;-()'\" ]*^
所以我想根據它是否只包含語法字符以及數字和字母來驗證字符串(基本上是AZ,az,0-9,加上句點(。),逗號(),分號(:),分號(;),連字符( - ),單引號('),雙引號(「)和圓括號()我得到一個PHP錯誤,說:」編譯失敗:範圍不按順序?在性格CLAS」我應該用什麼正則表達式代碼使用正則表達式驗證正則句語法
這是我目前使用的一個: ^[a-zA-Z0-9_:;-()'\" ]*^
你需要逃避-
那麼這將成爲這個^[a-zA-Z0-9_:;\-()'\" ]*
-
在字符集內有一個特殊的含義,所以它需要被轉義。最後也不需要^
。正則表達式也可以用\w
這樣
^[\w:;()'"\s-]*
\w
匹配字母,數字和下劃線簡化。
啊,沒有意識到我必須逃脫連字符。謝謝。只要允許我接受,您的回答就會被接受。 – ShoeLace1291
@ ShoeLace1291如果你使用's代替''''''''更好,因爲它可能更清楚地涉及空間。另外,沒有必要轉義''' –
問題是你在正則表達式中有一個破折號字符,解析器正在將它解釋爲一個範圍而不是文字破折號。您可以修復,通過:
^[a-zA-Z0-9_:;\-()'\" ]*^
)^[-a-zA-Z0-9_:;()'\" ]*^
)^[a-zA-Z0-9_:;()'\" -]*^
)
你這是什麼意思是「語法人物」? –