限制正規表示式中的字元長度
使用正規表示式驗證輸入時,可能需要限制正規表示式中的字元長度匹配。這可以使用錨點和零寬度斷言來實現。
問題中提供的範例使用正規表示式來匹配僅包含字母、數字和某些特殊字元的字串,沒有字元長度限制。但是,當嘗試使用量詞 {1,15} 將長度限制為 15 個字元時,會遇到語法錯誤。
原因是量詞無法應用在錨點上。要限製字元長度,另一種方法是使用錨定在字串開頭的前瞻。
修改後的表達式:
^(?=.{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,<>?()"]*$
此表達式包括前瞻,(?= .{1,15}$),它檢查字串末尾是否有1 到15 個字元的序列。表達式的主要部分比較輸入字串的長度。
同樣,可以為各種程式語言編寫表達式:
Flavor | Expression |
---|---|
ECMAScript, C | ^(?=.{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,<>?()"]*$ |
Other regex flavors, Python | A(?=.{1,15}z)[a-zA-Z0-9]*[^$%^&*;:,<>?()"]*z |
其他注意事項
以上是如何限制正規表示式中的字元長度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!