正则表达式
正则表达式
通用匹配
1.普通转义字符:
\w:匹配单个字母数字下划线 \W:匹配单个非字母数字下划线
\d:匹配单个数字[0-9] \D:匹配单个非数字 [^0-9]
\s:匹配单个空白符 \S:匹配单个非空白符
2.匹配次数:
. :匹配除了换行符以外的其他任意字符
* :匹配0次或多次 (可以匹配0次)
+ :匹配至少一次或多次
?:匹配0次或1次 (禁止贪婪模式,尽少的去匹配)
{m} :匹配m次
{m,}: 匹配至少m次
{m,n}:匹配m到n次
[] :限制匹配类型的范围 [a,b,c]:匹配a,b,c中的任意一个字符
[^]: 匹配非括号内的字符 [a,b,c]:匹配非a,b,c中的字符
() :分组
| :或;多个条件,配合()使用
^:限制以什么开头
$:限制以什么结尾
'(?P<ab>)': 分组名为ab匹配
写规则的时候,前边尽量加r
Python正则表达式:
python的re模块提供了正则表达式的功能
import re
①. res = re.match(pattern,string,flags):从字符串的开头用正则规则去匹配指定的字符,返回一个匹配对象,匹配失败返回None
pattern:正则表达式
string:被匹配的字符
flags:标志位,限制匹配的方式
匹配对象的方法:res.group()
date = '今天是2018-01-11'
res = re.search(r'\d{4}-\d{2}-\d{2}',date)
res1 = re.search(r'(\d{4})-(\d{2})-(\d{2})',date)
res2 = re.search(r'(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})',date)
print(res.group(),res1.group(),res1.group(1))
print(res2.group('year'),res2.group('month'),res2.group('day'))
res.groupdict():将匹配结果转为字典类型(可用于分组查询时使用)
当匹配内容有换行时,可在规则里加上参数re.S
②.re.search(pattern,string,flags):匹配整个字符串,匹配到第一个后就返回
③.re.findall():匹配整个字符串,返回所有匹配成功的对象组成列表
④.re.sub():搜索并替换符合规则的字符
re.sub(正则表达式,替换成的字符串,原字符串)
⑤.re.split():以指定的规则分割字符
参数1:正则表达式
参数2:要匹配的字符
str = 'I love python'
res = re.split(r'\W+',str)
res1 = re.split(r'(\W)',str) #以分组为分隔符,分组内容会被保留
print(res,res1)
可使用多个分隔符;找不到匹配对象,则返回原字符
⑥.re.compile()
将正则表达式编译成正则表达式对象,方便复用该正则表达式
JS正则表达式:
匹配规则.匹配方法(匹配内容)
书写方式:将正则表达式匹配规则写在 / / 里面
匹配方法:test():返回布尔值类型,匹配成功返回true
匹配方法:exec():匹配成功返回数组,不存在返回null

浙公网安备 33010602011771号