正表达式为高级的文本模式匹配,抽取,与/或文本形式的搜索和替换功能提供了基础。简而言之,正则表达式(简称regex)是由一些字符和特殊符号组成的字符串,它描述了模式的重复或者表达多个字符。python通过标准库中的re模块来支持正则表达式。
下图是最常见的特殊符号和字符,也称元字符,正是它给予正则表达式强大的功能和灵活性。
1.择一匹配符号
表示择一匹配的管道符号(|),键盘上的竖线,表示从多个模式中选择其中一个的操作。它用于分割不同的正则表达式。所以择一匹配有时候也被逻辑或(logical OR)。
2.匹配任意单个字符
点号(.)符号匹配除了换行符号\n以外的任何字符(python正则表达式有一个编译标记【S或DOTALL】,该标记能够推翻这个限制,使用点号能够匹配换行符)。
3.从字符串起始或者结尾或者单词边界匹配
匹配字符串的开始位置,用脱字符(^)或者特殊字符\A(反斜杠和大写字母A);匹配字符串的末尾位置用($)或者\Z。
例如:
^Good 表示任何以Good作为起始的字符串
/bin/tcsg$表示任何以bin/tcsg结尾的字符串
^sub:hi$表示任何由单独的字符串sub:hi构成的字符串
特殊字符\b和\B可以用来匹配字符边界。\b用于匹配一个单词的边界,这个单词必须是起始的部分;而\B则匹配出现在一个单词中间的字符。
正则表达式示例:
go表示任何包含go的字符串
\bgo表示任何以go开始的字符串
\bgo\b仅仅匹配单词go
\Bgo 表示包含但是并不以go作为起始的字符串