我有一个字符串foo-foo-AB1234-foo-AB12345678
。该字符串可以以任何格式出现,是否有一种方法仅匹配以下模式字母、字母、3-5位数字?
我有以下实现:
preg_match_all('/[A-Za-z]{2}[0-9]{3,6}/', $string, $matches);
很遗憾,这会在 AB1234
和 AB12345678
上找到匹配项,而后者有超过6个数字。在这种情况下,我只希望找到 AB1234
的匹配项。
我尝试了:
preg_match_all('/^[A-Za-z]{2}[0-9]{3,6}$/', $string, $matches);
你会注意到
^
和$
用来标记开头和结尾,但这仅适用于字符串而非段落,因此找不到匹配项。我理解代码的行为方式,它是有逻辑意义的。但我无法想出解决方案。