在字符串中匹配8位数字的字母数字

时间:2013-09-13 01:04:19

标签: php regex php-5.3

我想使用正则表达式来检查一个字符串是否包含一个包含8位字母数字字符的单词,忽略大写和小写(意味着2HJS1289和2hjs1289应匹配)。我知道我可以使用preg来做到这一点,到目前为止我有这个:

preg_match('/[A-Za-z0-9]/i', $string)

但我不确定如何将其限制为8位/字符方案。

3 个答案:

答案 0 :(得分:2)

对于正好8个字词,您需要使用字边界:\b

preg_match('/\b[A-Z\d]{8}\b/i', $string)

答案 1 :(得分:1)

尝试

preg_match('/\b([A-Z0-9]{8})\b/i', $string)

{8}恰好匹配8次。我添加了捕获组(括号),以防您需要提取实际匹配。

您还可以使用{min,max}来匹配最小和最大时间之间重复的模式(包括,我认为)。或者您可以将其中一个参数保留为开放状态。例如{min,}至少匹配最小时间

答案 2 :(得分:0)

[a-zA-Z0-9] - 将匹配大写或小写字母或数字

{8} - 将指定匹配前面标记中的8个

把它放在一起:

 preg_match('/([A-Za-z0-9]{8})/i', $string)

example