正则

2018-12-23  本文已影响0人  小袋鼠cf

. :表示匹配除了换行符之外的任意字符
\:转义字符
[a-z]:匹配a-z里面的任意一个字符
\d:匹配数字 [0-9]
\D:匹配非数字 [^\d]
\s:匹配空白字符(空格,\n,\t....)
\S:匹配非空白字符
\w:匹配单词字符(A-Za-z0-9)
\W:匹配非单词字符

^:匹配以。。。开头
$:匹配以。。。结尾

():分组
|:或

:匹配前的字符任意次数
?:匹配前的字符0次或1次
+:匹配
前的字符1次或多次
{m}:匹配{m}前的字符m次
{m,n}:匹配{m,n}前的字符m-n次

.*?匹配空格
匹配换行 re.S

非贪婪匹配
*?
+?
??
{m,n}?

import re
sub_str = 'abcdefabcd'
pattern = re.compile('b')
result = re.match(pattern,sub_str)

print(type(result))
if result:
print(result.group())

re.compile()把正则表达式构建一个pattern对象

re.match()从字符串的起始位置开始匹配,开头就必须符合正则规则,如果匹配到了就返回结果,匹配不到返回None

在整个字符串进行匹配,匹配到结果立即返回,匹配不到返回None

result=re.search(pattern,sub_str)
print(result.group())

在整个字符串进行匹配,匹配出所有符合正则规则的结果,以列表的形式返回

result = re.findall(pattern,sub_str)
print(result)

result = re.finditer(pattern,sub_str)
print(type(result))
for note in result:
print(type(note))
print(note.group())

替换

url = 'http://baidu.com/s?kw=aaaa&pn=20'
pattern=re.compile('pn=\d+')
result=re.sub(pattern,'pn=30',url)
print(result)

sub后面跟的参数

pattern:正则规则

repl:要替换的字符串

string:原始字符串

pattern = re.compile('[=:&]')
result = re.split(pattern,url)
print(result)

上一篇 下一篇

猜你喜欢

热点阅读