顾名思义,正则表达式不能按字面意义理解。 在自然语言中,诸如“江山易改,本性难移”之类的表达方式,只有不按字面意思理解才能传达其本意。正则表达式提供了一组规则,用于表达模式或字符序列,供 grep、ed、vi、awk、sed 等工具使用。 最简单的正则表达式可以按字面意思理解。 例如,字符串“ABC”就是一个正则表达式,意思是 A,后跟 B,后跟 C。 当需要表达复杂且重复的模式时,正则表达式就会变得复杂(且难看)。 在这些情况下,称为元字符的特殊字符与要按字面意思理解的字符混合在一起。 举个简单的例子,正则表达式^alone$表达了文本行中单词“alone”单独出现的模式。 元字符“^”表示“文本行的第一列”,元字符“$”表示“文本行的末尾”(行尾换行符之前)。
这只是正则表达式规则的冰山一角。 它们对于 awk 和 sed 等工具非常重要,因为您可以根据正则表达式定义的模式请求将某些处理规则应用于它们的输入数据。 使用上面的例子,您可以轻松编写一个 awk 脚本,来统计输入行中仅包含单词“alone”的次数。
一个较好的参考资料是 O'Reilly 出版的 Jeffrey E. F. Friedl 的精通正则表达式。