我听说正则表达式很慢。 所以我想知道哪个代码会更有效率,因为我正在寻找的模式以arobase开头:
这一个?
if(preg_match('!^@([a-zA-Z0-9_]+):([a-zA-Z0-9]+)$!', $subject, $match)){
// do something
}
还是这个?
if(
'@' === substr($subject, 0, 1) &&
preg_match('!^@([a-zA-Z0-9_]+):([a-zA-Z0-9]+)$!', $subject, $match)
){
// do something
}
我想我会运行一些自定义测试...
答案 0 :(得分:1)
这是不好的优化。如果您将使用分析器并仅优化需要优化的代码,那就更好了。
但是这个代码可以通过字符串数组访问技巧进行优化。
if('@' === $subject[0] && preg_match('!^@([a-zA-Z0-9_]+):([a-zA-Z0-9]+)$!', $subject, $match)){
// do something
}