我不想让你在看到这个标题的时候就下意识地以为我又要罗列一大堆正则表达式的语法,这样就显得太无聊了,当然,我现在这种谈论无聊的资本主要是建立在别人的辛勤耕耘上——你尽可以在网络上搜索到一堆正则表达式的教程,泛滥在信息的海洋里,通过二进制的姿态传输到你的内存,纤毫毕现地在屏幕上勾勒着那些单调与乏味。
我想说说我的浅薄历程。我一开始接触正则表达式也被那些语法塞得一团糟,很快就忘了。直到后来我要写一些爬虫,我才重新去学习那些语法。这时候我才发现正则表达式的厉害之处。就拿最常用的非贪婪匹配.*?
来说,这简直是极度有用的一种语法,假设你要匹配一段字符串中间的一些字符,你可以用一些定位字符作前后限定,然后用(.*?)
来获得中间这段字符。不要小看了这个语法,我在写爬虫的时候用得最多的就是这种形式或者变种,写多了也就不觉得无聊,效率也提高了。
我提到这个例子无非就是想说明两点:第一,学习正则表达式的最好方式就是实践,埋头看语法有点浪费时间。第二,正则表达式在文字处理方面是一个很有用的工具,可以提升不少效率。无论是不是专业人员,我都建议学习一两种脚本语言,比如Python,调用正则表达式模块处理文字还是非常方便的。
最后,推荐一个学习正则表达式的网站:RegExr,这个网站可以让你实时地看到自己写的正则表达式的匹配结果。