[英]regex patterns - noob in PHP
我一直在進行測試和谷歌搜索,但仍然無法找出模式來驗證逗號分隔的數字。
9位數字長,只能為數字,不能有空格,每個數字的前導數字不能為零
試着
^(?:\s*\d{9}\s*(?:,|$))+$
但不去
請注意,逗號是必需的,因為輸入文件應在3到20(最大)個逗號分隔的整數之間
preg_match('=^[1-9][0-9,]*$=', $x);
應該這樣做,除非您說的是數字必須是9位長(帶可選的逗號?還是需要逗號?),在這種情況下,請嘗試類似preg_match('=^[1-9][0-9]{2},?[0-9]{3},?[0-9]{3}$=', $x);
您提到不應有空格,但是您在模式中使用了\\s*
(0+空格)。 另外, (?:,|$)
一匹配,
或結束字符串,那么你的模式允許尾隨,
。
我建議使用
^[1-9]\d{8}(?:,[1-9]\d{8}){2,19}$
詳細資料 :
^
-字符串開頭 [1-9]
-9位數字的第一位不能為零,只能為1
到9
\\d{8}
-數字的剩余8位數字 (?:,[1-9]\\d{8}){2,19}
-發生2到19次(總共3到20次)
,
-逗號 [1-9]\\d{8}){2,19}
-參見上文 $
-字符串結尾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.