python 正则表达式
作者原网站:https://www.liaoxuefeng.com/wiki/1016959663602400/1017639890281664
用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。
基础:
在正则表达式中,如果直接给出字符,就是精确匹配。
用 \d 可以匹配一个数字,\w 可以匹配一个字母或数字,所以:
'00\d' 可以匹配 '007',但无法匹配 '00A';
'\d\d\d' 可以匹配 '010';
'\w\w\d' 可以匹配 'py3';
. 可以匹配任意字符,所以:
'py.' 可以匹配 'pyc'、'pyo'、'py!' 等等。
要匹配变长的字符,在正则表达式中,用 * 表示任意个字符(包括0个),用 + 表示至少一个字符,用 ? 表示0个或1个字符,用 {n} 表示n个字符,用 {n,m} 表示 n-m 个字符:
来看一个复杂的例子:\d{3}\s+\d{3,8}。
我们来从左到右解读一下:
\d{3} 表示匹配3个数字,例如'010'
\s 可以匹配一个空格(也包括Tab等空白符),所以 \s+ 表示至少有一个空格
\d{3,8} 表示3-8个数字,例如'1234567'。
综合起来,上面的正则表达式可以匹配以任意个空格隔开的带区号的电话号码。
如果要匹配'010-12345'这样的号码呢?由于 '-' 特殊字符,在正则表达式中,要用 '\' 转义,所以上面的正则是\d{3}\-\d{3,8}。
re模块

切分字符串

