限制正則表達式中的字元長度
您的初始正則表達式允許無限的字元長度,但是當您嘗試將其限制為15 時帶有量詞{1,15} 的字符,您遇到了錯誤。這是因為量詞不能應用於錨點,例如 ^ 字串開頭錨點。
使用Lookahead 的解決方案
要有效限製字元長度,您可以利用錨定在字串開頭的正前瞻:
^(?=.{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,<>?()"]*
先前瞻確保後續字串符合1 到15 個字元(由量詞{1,15} 指定)並在匹配後立即結束。 $ 錨點表示字串的結尾。
避免限制量詞
在正規表示式結尾使用量詞,例如^[a-zA-Z0-9]*[^$%^&*;: ,?()"]{1,15}$,會錯誤地將第二個字元類別的長度限制在1 到15個字元。 15 個字符,包括字串末尾的換行符(由於$ 錨)。 false。 :
以上是如何使用 Lookahead 限制正規表示式中的字元長度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!