PHP-正则表达式匹配如下字符串:2012/018843/06?

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标

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

如果它可能会帮助某人在未来,我想说,这将是一个南非公司注册号

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

谢谢

编辑:

我试过这个:

[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)
语法:

  • \d
    是一个转义序列,表示任何十进制数字(0-9),也可以用
    [0-9]
  • {4}
    定义最后一个表达式(在本例中为十进制) 数字)必须出现4次,使用此表达式可避免多次重复前面的表达式,因此
    \d{4}
    表示
    \d\d\d
  • ^
    表示 字符串和
    $
    字符串的结尾,这样可以确保 此字符串中没有其他字符,因此类似于
    abc2012/018843/06def的字符串将不匹配

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

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

  • \d
    是一个转义序列,表示任何十进制数字(0-9),也可以用
    [0-9]
  • {4}
    定义最后一个表达式(在本例中为十进制) 数字)必须出现4次,使用此表达式可避免多次重复前面的表达式,因此
    \d{4}
    表示
    \d\d\d
  • ^
    表示 字符串和
    $
    字符串的结尾,这样可以确保 此字符串中没有其他字符,因此类似于
    abc2012/018843/06def的字符串将不匹配

数字的长度是否固定?然后尝试“4位数字斜杠6位数字斜杠2位数字”?看起来很容易。a) 你试过什么?b) 这个表达比我说的更复杂吗?学习这些表达。特别是元字符非常重要。这些包括例如?和不同的括号。@John3136我编辑了我的文章,提供了一个我尝试过的例子,它并不复杂。这就是确切的字符串,总是(数字当然会不同)@Slomo谢谢你的链接,我会通读它!数字的长度是固定的吗?然后尝试“4位数字斜杠6位数字斜杠2位数字”?看起来很容易。a) 你试过什么?b) 这个表达比我说的更复杂吗?学习这些表达。特别是元字符非常重要。这些包括例如?和不同的括号。@John3136我编辑了我的文章,提供了一个我尝试过的例子,它并不复杂。这就是确切的字符串,总是(数字当然会不同)@Slomo谢谢你的链接,我会通读它!看起来很完美,你能解释一下吗?谢谢顺便说一句:如果长度不同,那么你可以定义,即
{4,8}
而不是
{6}
,这意味着可能有4-8个十进制数字。这看起来很完美,你能解释一下吗?谢谢顺便说一句:如果长度不同,那么你可以定义,即
{4,8}
,而不是
{6}
,这意味着可能有4-8个十进制数字。你能看到另一个答案并解释为什么选择这个吗?你能看到另一个答案并解释为什么选择这个吗?