我倾向于使用rtrim
、ltrim
和trim
来去除字符串结尾、左侧或右侧的空格。我还会使用它们来去掉字符串末尾或开头的字符。这种方法比正则表达式更快吗?下面的代码有什么问题吗?
$string = " hello: ";
$string = rtrim(trim($string), ":"); //hello
如果我使用正则表达式,那么在性能方面有什么区别吗?
正则表达式通常会使事情变得更慢,特别是应用于这样的小字符串,因为需要进行表达式分析。
假设冒号永远不会出现在左侧,您可以消除 rtrim()
:
$string = trim($string, ": "); // trim either space or colon on either side
trim($string, ': ')
?冒号是否可能出现在' hello:'
的前面? - Ja͢cktrim|ltrim|rtrim
比regex
更快。 - adamj