简单的字符串操作

因为正则表达式可以做很多事情,所以很容易将它们用于最简单的操作。但是使用正则表达式引擎会占用内存和处理器的成本:你需要编译表达式,将自动机存储在内存中,对其进行初始化,然后使用字符串对其进行处理以运行它。

在许多情况下,没有必要使用它! 无论你选择何种语言,它总是具有基本的字符串操作工具。因此,作为一项规则,当有一个工具在标准库中执行操作时,请使用该工具,而不是正则表达式:

  • 分裂一个字符串?

例如,以下代码段适用于 Python,Ruby 和 Javascript:

'foo.bar'.split('.')

哪个更易于阅读和理解,并且比(某种程度上)等效的正则表达式更有效:

(\w+)\.(\w+)
  • 剥离尾随空间?

这同样适用于尾随空格!

'foobar     '.strip() # python or ruby
'foobar     '.trim() // javascript

这相当于以下表达式:

([^\n]*)\s*$ # keeping \1 in the substitution