python--正则表达式

Posted qigege1104

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python--正则表达式相关的知识,希望对你有一定的参考价值。

一:re模块的使用

     在python中,需要通过正则表达式对字符串进行匹配操作的时候,可以使用一个模块re

re模块的使用过程:

import re  #导入re模块

result = re.match(正则表达式,要匹配的字符串) #使用match()方法进行匹配操作;若匹配成功返回Match Object对象,若不成功则返回None

result.group() #如果上一步匹配到数据的话,就可以使用group()方法来提取数据(可以带参数),

二:常见的正则表达式符号

 表示字符:

字符 功能
. 匹配任意一个字符(\n除外)
[] 匹配[]中列举的字符
\d 匹配数字,即0-9
|\D 匹配非数字
\s 匹配空白,即空格,tab间等
\S 匹配非空白
\w 匹配单词字符,a-z,A_Z,0-9
\W 匹配非单词字符

 

 

 

 

 

 

 

 表示数量:

字符 功能
* 匹配前一个字符出现0次或无限次,即可有可无
+ 匹配前一个字符出现一次货无限次,即至少一次
匹配前一个字符出现0次或者一次
{m} 匹配前一个字符出现m次
{m,} 匹配前一个字符至少出现m次
{m,n} 匹配前一个字符出现从m到n次

 

 

 

 

 

 

  表示边界:

字符 功能
^ 匹配字符串开头
$ 匹配字符串结尾
\b 匹配一个单词的边界
\B 匹配非单词边界

 

 

 

 

  匹配分组:

字符 功能
   | 匹配左右任意一个表达式
(ab) 将括号中字符作为一个
  \num 引用分组num匹配到的字符串
(?P<name>) 分组起别名
(?P=name) 引用别名为name分组匹配到的字符串

 

 

 

 

 

注意:

1:通常在写需要使用正在表达式的地方的字符串 都要加上r 变成原始字符串 例:r’\d/sabc‘

 :2:关闭贪婪模式 .+? 加上一个问号来关闭贪婪模式

 

 1 import  re
 2 
 3 result = re.match(r^1[3578]\d{9}$,13524567899)#匹配电话号码
 4 s = result.group()
 5 print(s)
 6 
 7 
 8 a = re.match(r[1-9]?\d$|100$,100)#匹配0-100之间的数
 9 ss =a.group()
10 print(ss)
11 
12 s = re.match(r<h1>(.*)</h1>,<h1>我是大神</h1>)
13 sss = s.group()
14 sss1= s.group(1) #带的参数就是提取()分组 带的是几 就提取第几个分组
15 print(sss)
16 print(sss1)
17 
18 d = re.match(r<(.+)><(.+)>(.+)</\2></\1>,<a><h1>我要学会正则表达式</h1></a>)
19 dd = d.group()
20 print(dd)
21 dd1 = d.group(3)
22 print(dd1)
23 
24 y = re.match(r[email protected](163.com|qq.com|126.com)$,[email protected])#后面那个括号(163.com|qq.com|126.com) 表示人选一种都可以
25 yy = y.group()
26 print(yy)
27 
28 q = re.search(rpython,python is very good) #从左到右 查到到匹配的字符就结束
29 print(q.group())
30 
31 f = re.findall(rpython,python is good,and I like python) #找出所有的匹配项
32 print(f)
33 
34 esu = re.sub(java,python,java is my favortive)#将匹配到的字符替换
35 print(esu)

 

以上是关于python--正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

python 正则表达式

python成长之路第三篇_正则表达式

python成长之路第三篇_正则表达式

python 正则表达式 re模块基础

Python学习笔记之正则表达式

python基础学习(十三)