Php 在字符串中匹配8位字母数字
我想使用正则表达式来检查字符串是否包含包含8位字母数字字符的单词,忽略大小写(意味着2HJS1289和2HJS1289应该匹配)。我知道我可以使用preg来实现这一点,到目前为止,我已经做到了:Php 在字符串中匹配8位字母数字,php,regex,php-5.3,Php,Regex,Php 5.3,我想使用正则表达式来检查字符串是否包含包含8位字母数字字符的单词,忽略大小写(意味着2HJS1289和2HJS1289应该匹配)。我知道我可以使用preg来实现这一点,到目前为止,我已经做到了: preg_match('/[A-Za-z0-9]/i', $string) 但是,我不确定如何将其限制为8位/字符方案 试试看 preg_match('/\b([A-Z0-9]{8})\b/i', $string) {8}正好匹配8次。我添加了捕获组(括号),以防需要提取实际匹配 您还可以使用{mi
preg_match('/[A-Za-z0-9]/i', $string)
但是,我不确定如何将其限制为8位/字符方案 试试看
preg_match('/\b([A-Z0-9]{8})\b/i', $string)
{8}正好匹配8次。我添加了捕获组(括号),以防需要提取实际匹配
您还可以使用{min,max}来匹配在min和max时间之间重复的模式(我认为包括min和max)。或者,您可以将其中一个参数保留为开放式。例如{min,}要匹配至少min次,请尝试
preg_match('/\b([A-Z0-9]{8})\b/i', $string)
{8}正好匹配8次。我添加了捕获组(括号),以防需要提取实际匹配
您还可以使用{min,max}来匹配在min和max时间之间重复的模式(我认为包括min和max)。或者,您可以将其中一个参数保留为开放式。例如{min,}至少匹配min次[a-zA-Z0-9]-将匹配大写或小写字母或数字 {8} -将指定与前面令牌的8个匹配 把它放在一起:
preg_match('/([A-Za-z0-9]{8})/i', $string)
[a-zA-Z0-9]-将匹配大写或小写字母或数字 {8} -将指定与前面令牌的8个匹配 把它放在一起:
preg_match('/([A-Za-z0-9]{8})/i', $string)
对于8个字符的单词,您需要使用单词边界:
\b
preg_match('/\b[A-Z\d]{8}\b/i', $string)
对于8个字符的单词,您需要使用单词边界:
\b
preg_match('/\b[A-Z\d]{8}\b/i', $string)
preg_匹配('/[A-Za-z0-9]{8}/',$string)
用于8个字符的alphanum字符串。如果要匹配4到8个字符,可以将{8}
更改为{4,8}
。preg_match('/[A-Za-z0-9]{8}/',$string)
用于8个字符的alphanum字符串。如果要匹配4到8个字符,可以将{8}
更改为{4,8}
。因为使用[a-zA-z]
,所以不需要尾随“i”。因为使用[a-zA-z]
,所以不需要尾随“i”。例如,这将匹配一个9个字符的单词。对于精确的8,单词边界是必需的。@pguardiario:单词边界不是一个好主意,因为像abc456gh\uc4
这样的字符串将不匹配。精确匹配8个字母数字字符的唯一方法似乎是使用lookarounds:(?和(?![A-Za-z0-9])
No,该字符串无论如何都不应该匹配。@pguardiario:测试它。如果没有单词边界或锚,这个正则表达式将匹配任何包含8个字符的字母数字字符串的输入字符串。例如,它将匹配一个9个字符的单词。对于正好8个字符,需要单词边界。@pguardiario:单词边界是个坏主意,因为像abc456gh_
将不匹配。精确匹配8个字母数字字符的唯一方法似乎是使用lookarounds:(?和(?![A-Za-z0-9])
不,该字符串无论如何都不应该匹配。@pguardiario:测试它。如果没有单词边界或锚,该正则表达式将匹配任何包含8个字符字母数字字符串的输入字符串。