Shell 解析文本中的电子邮件地址和URL,解析电子邮件地址和URL是一项常见任务。正则表达式能够帮助我们简化相关的工作。
实战演练
能够匹配电子邮件地址的正则表达式如下:
例如:
因为用到了扩展正则表达式(例如+
),所以得使用egrep
命令:
匹配HTTP URL的egrep
正则表达式如下:
例如:
工作原理
如果逐个部分进行设计,这些正则表达式其实很简单。在匹配电子邮件地址的正则表达式中,我们都知道电子邮件地址可以采用name@domain.some_2-4_letter_suffix
这种形式。那么,在编写正则表达式时也要遵循同样的规则:
[A-Za-z0-9.]+
表示在表示字面意义的字符@
出现之前,[]
中的字符需要出现一次或多次(这也正是+
的含义)。接下来就是域名,它是由包含字母或数字的字符串、点号以及2至4个字母组成的。模式[A-Za-z0-9.]+
能够匹配字母-数字字符串。\.
能够匹配必须出现的字面意义上的点号。[a-zA-Z]{2,4}
能够匹配长度为2、3或4的字符串。
匹配HTTP URL与匹配电子邮件地址类似,只是不需要匹配name@
部分:
学习本章内容可以参考如何使用正则表达式 和 sed 命令 相关知识。