我注意到很多关于何时使用正则表达式以及何时使用内置字符串函数(如String.Replace()(.NET))的争论.
似乎很多人总是建议总是在处理字符串时总是使用正则表达式(除了显示它们之外).这是真正的最佳做法还是我的错误印象?当问题只是"从这个文本中删除任何这些单词的出现"时,使用正则表达式似乎有些过分.
我想要输入,这样我就可以改进自己的代码并更好地回答其他人关于字符串操作的问题(其中有很多).
我认为,当基于字符串的搜索/替换成为可能时,使用Regex作为一个全能解决方案是错误的印象.
Regex本质上是一个模式匹配的过程,当你想匹配的字符串类型是可变的或只符合特定模式时,应该使用它.对于简单的字符串搜索就足够了的情况,我总是建议使用String类的内置方法.
我从未见过任何性能统计数据表明基于正则表达式的查找比字符串索引更快或更高效.此外,Regex引擎的执行能力也各不相同.
好像这还不够,构建一个性能非常差的Regex(例如使用大量的回溯)非常容易,因此如果你真的想要使用正则表达式匹配来优化性能,那么就需要深入了解Regex.另一方面,即使对于n00b执行基于字符串的搜索或替换,它也非常简单.
| 归档时间: |
|
| 查看次数: |
3213 次 |
| 最近记录: |