当前位置:嗨网首页>书籍在线阅读

01-模式匹配与正则表达式

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

第7章 模式匹配与正则表达式

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

我们每天还在识别各种其他文本模式:电子邮件地址中间有@符号,美国社会安全号有9位数和2个短横线,网站的URL通常有句点和正斜杠,新闻标题中单词的首字母大写,社交媒体上的话题以#开头且不包含空格等。

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

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

在本章中,你将从编写一个程序开始,先不用正则表达式来寻找文本模式,然后再使用正则表达式让代码变得简洁。我将使用正则表达式进行基本匹配,然后实现一些更强大的功能,如字符串替换,最后由你创建自己的字符类型。最后,在本章末尾,你将编写一个程序,实现从一段文本中自动提取电话号码和E-mail地址的功能。

55.png

视频讲解

2021022494769035.jpg