簡體   English   中英

正則表達式模式-PHP中的菜鳥

[英]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位數字的第一位不能為零,只能為19
  • \\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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM