我想使用正则表达式来检查一个字符串是否包含一个包含8位字母数字字符的单词,忽略大写和小写(意味着2HJS1289和2hjs1289应匹配)。我知道我可以使用preg来做到这一点,到目前为止我有这个:
preg_match('/[A-Za-z0-9]/i', $string)
但我不确定如何将其限制为8位/字符方案。
答案 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)