我对正则表达式了解不多,但想创建一个正则表达式来验证这样的字符串:'2012/018843/06。
如果将来可以帮助某人,我想说的是南非公司注册号。
如果有人愿意发布一个可以通过 PHP 处理并匹配的正则表达式,那就太好了。如果没有,任何指向以这种方式创建正则表达式的"基础知识"的链接将不胜感激!
谢谢。
编辑:
我试过这个:
[0-9/]{14}
但它与长度并不完全匹配。
数字的长度是固定的吗?然后尝试
preg_match('#^d{4}/d{6}/d{2}$#', $string)
语法:
-
d
是表示任何十进制数字 (0-9) 的转义序列,也可以用[0-9]
-
{4}
定义,最后一个表达式(在本例中:小数digit) 必须出现 4 次,使用此表达式可避免多次重复前面的表达式,因此d{4}
表示dddd
-
^
表示字符串并$
字符串的末尾,因此这可确保有此字符串中没有其他字符,因此像abc2012/018843/06def
这样的字符串不匹配
最简单的形式是:
preg_match("|^d{4}/d{6}/d{2}$|", $input);
d
标记匹配任何整数 0 - 9,{}
中的整数表示前面的标记允许重复多少次,/
匹配文字/
,因为我使用 |
作为正则表达式分隔符。
^
标记是从字符串的开头匹配,$
匹配字符串的末尾,这样,像aa2012/124521/11bb
这样的东西就不会匹配(否则如果你取出^$
,它会匹配)