廖雪峰Python(1)-正则表达式

Email 正则表达式
正则表达式 用户输入
正则表达式中 \d 匹配一个数字
\w 匹配一个数字或者字母
可以匹配的任意字符:
* :任意个字符
+ :表示至少一个字符
:0或者1个字符
{n}:表示n个字符
{n,m}:表示n-m个字符
例:\d{3}\S+\d{3,8}
(1)表示匹配3个数字
(2)\s 可以匹配一个空格
\s+:至少有一个空格:“ ”
(3)\d{3,8} 表示3-8个数字
(4)’-‘字符,用’\’转义
进阶
[]表示范围
[0-9a-zA-Z\_] 可以匹配一个数字,字母,下划线
[0-9a-zA-Z\_] + 匹配至少一个数字,字母,下划线组成的
[a-2A-Z\_][0-9a-zA-Z\_] *字母或下划线开头一个数字,字母或者下划线组成字符串
[a-2A-Z\_][0-9a-zA-Z\_]{0,19} 变量长度1-20字符
A|B 例: (P|p)ython
^:行的开头
^\d:数字开头
$:行的结束
\d $:必须以数字结束
^py$ 整行匹配

re模块: S = 'ABC\\-001'

      S = r'ABC\001'
import re
re.match(r'^\d{3}\-\d{3,8}$','010-12345')
match 是否匹配

匹配成功:Match对象 失败 None
切分字符串
用正则表达式切分字符比用固定灵活
正常切分代码

‘a  b  c'.split('')
re.split(r'\s+','a b c')
re.split(r'[\s\,]+','a,b,c,d')
re.split(r'[\s\,\;]+','a b;;cd')

正则表达式把不规则的输入转换为正确的数组。
分组
正则表达式提取子串的强大功能,用()表示的就是提取的分组Group
^(\d{3})-(\d{3,8})$

例:
m = re.match(r’^(\d{3})-(\d{3.8})$);’010-12345’
group方法,完成相应的提取

group(0)永远是原始的字符串

贪婪匹配:正则匹配默认为贪婪匹配,尽量多匹配
re.match (r’^(\d+)(0*)$’,’102300’).groups()
\d+ 贪婪匹配
0* 匹配空字符串
\d+ 采用非贪婪匹配
加个?就可以让\d+采用非贪婪匹配。

re.match(r'^(\d+?))(0*)$','102300').groups()

re模块

你可能感兴趣的:(python基础学习的积累,python)