0

我不太了解正则表达式,但想创建一个正则表达式来验证这样的字符串:`2012/018843/06.

如果将来可能对某人有所帮助,我想说那将是南非公司注册号。

如果有人愿意发布一个可以通过 PHP 处理并匹配的正则表达式,那就太好了。如果没有,任何指向以这种方式创建正则表达式的“基础”的链接将不胜感激!

谢谢。

编辑:

我试过这个:

[0-9/]{14}

但它与长度不完全匹配。

4

2 回答 2

3

以最简单的形式:

preg_match("|^\d{4}/\d{6}/\d{2}$|", $input);

\d标记匹配任何整数 0 - 9,里面的整数表示{}允许从以前的标记重复多少次,/匹配文字,/因为我|用作正则表达式分隔符。

^标记是从字符串的开头匹配,并匹配$字符串的结尾,这样,诸如此类的东西aa2012/124521/11bb将不匹配(如果取出 ,它将匹配^$

于 2012-06-26T06:41:54.460 回答
3

数字的长度是固定的吗?然后尝试

preg_match('#^\d{4}/\d{6}/\d{2}$#', $string)

句法:

  • \d是一个转义序列,表示任何十进制数字 (0-9),这也可以表示为[0-9]
  • {4}定义,最后一个表达式(在这种情况下:一个十进制数字)必须出现 4 次,使用这个表达式可以避免多次重复前面的表达式,所以\d{4}意味着\d\d\d\d
  • ^表示字符串的开头和字符串$的结尾,因此这确保了此字符串中没有其他字符,因此类似的字符串abc2012/018843/06def不会匹配
于 2012-06-26T06:42:05.230 回答