简单的字符串操作
因为正则表达式可以做很多事情,所以很容易将它们用于最简单的操作。但是使用正则表达式引擎会占用内存和处理器的成本:你需要编译表达式,将自动机存储在内存中,对其进行初始化,然后使用字符串对其进行处理以运行它。
在许多情况下,没有必要使用它! 无论你选择何种语言,它总是具有基本的字符串操作工具。因此,作为一项规则,当有一个工具在标准库中执行操作时,请使用该工具,而不是正则表达式:
- 分裂一个字符串?
例如,以下代码段适用于 Python,Ruby 和 Javascript:
'foo.bar'.split('.')
哪个更易于阅读和理解,并且比(某种程度上)等效的正则表达式更有效:
(\w+)\.(\w+)
- 剥离尾随空间?
这同样适用于尾随空格!
'foobar '.strip() # python or ruby
'foobar '.trim() // javascript
这相当于以下表达式:
([^\n]*)\s*$ # keeping \1 in the substitution