PHP中的trim/rtrim/ltrim与正则表达式的区别

3

我倾向于使用rtrimltrimtrim来去除字符串结尾、左侧或右侧的空格。我还会使用它们来去掉字符串末尾或开头的字符。这种方法比正则表达式更快吗?下面的代码有什么问题吗?

 $string = " hello: ";
 $string = rtrim(trim($string), ":"); //hello 

如果我使用正则表达式,那么在性能方面有什么区别吗?


为什么不使用 trim($string, ': ')?冒号是否可能出现在 ' hello:' 的前面? - Ja͢ck
没有保证空间,因此我同时使用trim和rtrim。 - GGio
我会说 trim|ltrim|rtrimregex 更快。 - adamj
1个回答

3

正则表达式通常会使事情变得更慢,特别是应用于这样的小字符串,因为需要进行表达式分析。

假设冒号永远不会出现在左侧,您可以消除 rtrim()

$string = trim($string, ": "); // trim either space or colon on either side

如果右侧没有空格而只有冒号,这个代码还能正常工作吗? - GGio
如果你只是处理小字符串并且没有进行任何其他字符串验证,那么修剪函数就是最好的选择,但是如果你打算使用正则表达式进行一些验证,那么在你的正则表达式中排除前导和尾随空格可能会更容易。 - Ro Yo Mi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接