preg_match( '/[a-z1-9]{2,5}-d(.d)?/', "example.com - ABC-1.0", $match);
这在 http://gskinner.com/RegExr/工作。 我在那里得到了预期的匹配 - 它与"ABC-1.0"匹配。 但不使用preg_match。 匹配数组为空。
使用 PCRE 函数时需要使用分隔符。 您还需要正则表达式不区分大小写。
preg_match('/[a-z1-9]{2,5}-d(.d)?/i'
您可以使用修饰符组在正则表达式中添加不区分大小写。
另请注意,组 1 是可选的,因此如果找不到.number
组 1 将为空。
/(?i)[a-z1-9]{2,5}-d(.d)?/
如果您知道ABC
部分应始终与大写字母匹配,则可以使用 [A-Z1-9]
则表达式方面,明确总比模糊更好。