1. 正则表达式

你可能熟悉文本查找,即按下Ctrl-F,输入你要查找的词。 “正则表达式”更进一步,它们让你指定要查找的“模式”。 你也许不知道一家公司的准确电话号码,但如果你住在美国或加拿大, 你就知道它有3位数字,然后是一个短横线,然后是4位数字(有时候以3位区号开始)。 因此作为一个人,你看到一个电话号码就知道: 415-555-1234 是电话号码,但 4,155,551,234 不是。

正则表达式很有用,但如果不是程序员,很少会有人了解它, 尽管大多数现代文本编辑器和文字处理器(诸如微软的Word或OpenOffice/LibreOffcie), 都有查找和查找替换功能,可以根据正则表达式查找。 正则表达式可以节约大量时间,不仅适用于软件用户,也适用于程序员。 实际上,技术作家Cory Doctorow声称,甚至应该在教授编程之前,先教授正则表达式:

“知道[正则表达式]可能意味着用3步解决一个问题, 而不是用3000步。如果你是一个技术怪侠, 别忘了你用几次击键就能解决的问题, 其他人需要数天的烦琐工作才能解决, 而且他们容易犯错。”

在本章中,你将从编写一个程序开始,先不用正则表达式来寻找文本模式。 然后再看看,使用正则表达式让代码变得多么简洁。 我将展示用正则表达式进行基本匹配,然后转向一些更强大的功能,诸如字符串替换, 以及创建你自己的字符类型。