-4

我有一个字符串,我想测试它是否为以下格式。

exactly seven alphabetical OR numerical characters, followed by a '_', followed by 
exactly five alphabetical OR numerical characters, followed by a '_', followed by 
exactly seven alphabetical OR numerical characters, followed by a '_', followed by 
exactly nine alphabetical OR numerical characters. 
No other characters should exist other then the above mentioned characters.

我想要一个函数,如果它与描述匹配则返回 true,如果不匹配则返回 false。

编辑:字母和数字字符可以混合使用。

4

2 回答 2

2

{}将允许您指定 char 可以重复多少次。

[]允许您列出-指定字符范围的可能字符。

最后的i标志使它不区分大小写。^标记字符串的开始并$标记结束。这些可以防止任何东西出现在比赛的前面。

preg_match('/^[a-z0-9]{7}_[a-z0-9]{5}_[a-z0-9]{7}_[a-z0-9]{9}$/i', $str);
于 2012-05-29T00:51:56.940 回答
1

匹配这个的正则表达式是:

^[a-zA-Z0-9]{7}_[a-zA-Z0-9]{5}_[a-zA-Z0-9]{7}_[a-zA-Z0-9]{9}$

语法简要概述:

  • ^仅匹配字符串的开头;$只匹配结尾。
  • []表示要匹配的字符。它们可以包括范围,例如0-9.
  • {}表示将前一件事重复特定次数。
于 2012-05-29T00:43:58.580 回答