PHP-正则表达式匹配如下字符串:2012/018843/06?
我对正则表达式不太了解,但想创建一个正则表达式来验证如下字符串:`2012/018843/06 如果它可能会帮助某人在未来,我想说,这将是一个南非公司注册号 如果有人愿意发布一个可以通过PHP处理的正则表达式,并且与之匹配,那就太好了。如果没有,任何指向以这种方式创建正则表达式的“基础知识”的链接都将不胜感激 谢谢 编辑: 我试过这个:PHP-正则表达式匹配如下字符串:2012/018843/06?,php,regex,Php,Regex,我对正则表达式不太了解,但想创建一个正则表达式来验证如下字符串:`2012/018843/06 如果它可能会帮助某人在未来,我想说,这将是一个南非公司注册号 如果有人愿意发布一个可以通过PHP处理的正则表达式,并且与之匹配,那就太好了。如果没有,任何指向以这种方式创建正则表达式的“基础知识”的链接都将不胜感激 谢谢 编辑: 我试过这个: [0-9/]{14} 但它与长度不完全匹配。最简单的形式是: preg_match("|^\d{4}/\d{6}/\d{2}$|", $input); \d标
[0-9/]{14}
但它与长度不完全匹配。最简单的形式是:
preg_match("|^\d{4}/\d{6}/\d{2}$|", $input);
\d
标记匹配任何整数0-9,{}
内的整数表示允许从前面的标记重复多少次,/
匹配literal/
,因为我使用
作为正则表达式分隔符
^
标记从字符串开始匹配,$
匹配字符串的结尾,这样,像aa2012/124521/11bb
这样的东西就不匹配了(如果您取出^$
则匹配)以最简单的形式:
preg_match("|^\d{4}/\d{6}/\d{2}$|", $input);
\d
标记匹配任何整数0-9,{}
内的整数表示允许从前面的标记重复多少次,/
匹配literal/
,因为我使用
作为正则表达式分隔符
^
标记从字符串开始匹配,$
匹配字符串的结尾,这样,像aa2012/124521/11bb
这样的东西就不匹配了(如果去掉^$
,则会匹配)数字的长度是固定的吗?然后试试看
preg_match('#^\d{4}/\d{6}/\d{2}$#', $string)
语法:
是一个转义序列,表示任何十进制数字(0-9),也可以用\d
[0-9]
定义最后一个表达式(在本例中为十进制) 数字)必须出现4次,使用此表达式可避免多次重复前面的表达式,因此{4}
表示\d{4}
\d\d\d
表示 字符串和^
字符串的结尾,这样可以确保 此字符串中没有其他字符,因此类似于$
abc2012/018843/06def的字符串将不匹配
preg_match('#^\d{4}/\d{6}/\d{2}$#', $string)
语法:
是一个转义序列,表示任何十进制数字(0-9),也可以用\d
[0-9]
定义最后一个表达式(在本例中为十进制) 数字)必须出现4次,使用此表达式可避免多次重复前面的表达式,因此{4}
表示\d{4}
\d\d\d
表示 字符串和^
字符串的结尾,这样可以确保 此字符串中没有其他字符,因此类似于$
abc2012/018843/06def的字符串将不匹配
{4,8}
而不是{6}
,这意味着可能有4-8个十进制数字。这看起来很完美,你能解释一下吗?谢谢顺便说一句:如果长度不同,那么你可以定义,即{4,8}
,而不是{6}
,这意味着可能有4-8个十进制数字。你能看到另一个答案并解释为什么选择这个吗?你能看到另一个答案并解释为什么选择这个吗?