wangjuju123

2018-11-27   阅读量: 875

数据分析师 Python编程

正则表达式是什么

扫码加入数据分析学习群

 二选一和子模式

需要以不同的方式处理每个字符时,字符集很好,但如果只想匹配字符串'python'和'perl', 该如何办呢?使用字符集或通配符无法指定这样的模式,而必须使用表示二选一的特殊字符:管 道字符(|)。所需的模式为'python|perl'。 然而,有时候你不想将二选一运算符用于整个模式,而只想将其用于模式的一部分。为此, 可将这部分(子模式)放在圆括号内。对于前面的示例,可重写为'p(ython|erl)'。请注意,单 个字符也可称为子模式。

 可选模式和重复模式

通过在子模式后面加上问号,可将其指定为可选的,即可包含可不包含。例如,下面这个不 太好懂的模式:

r'(http://)?(www\.)?python\.org'

只与下面这些字符串匹配:

'http://www.python.org'

'http://python.org'

'www.python.org'

'python.org'

对于这个示例,需要注意如下几点。

 我对句点进行了转义,以防它充当通配符。

 为减少所需的反斜杠数量,我使用了原始字符串。

 每个可选的子模式都放在圆括号内。

 每个可选的子模式都可以出现,也可以不出现。

问号表示可选的子模式可出现一次,也可不出现。还有其他几个运算符用于表示子模式可重 复多次。  (pattern)*:pattern可重复0、1或多次。

 (pattern)+:pattern可重复1或多次。

 (pattern){m,n}:模式可从父m~n次。

例如,r'w*\.python\.org'与'www.python.org'匹配,也与'.python.org'、'ww.python.org' 和'wwwwwww.python.org'匹配。同样,r'w+\.python\.org'与'w.python.org'匹配,但与'.python. org'不匹配,而r'w{3,4}\.python\.org'只与'www.python.org'和'wwww.python.org'匹配。


注意 在这里,术语匹配指的是与整个字符串匹配,而函数match(参见表10-9)只要求模式与 字符串开头匹配。

添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
0.0000 0 3 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子