,,对python3中的RE(正则表达式)-详细总结

,,对python3中的RE(正则表达式)-详细总结

今天边肖就和大家分享一下python3中re(正则表达式)-的详细总结,有很好的参考价值。希望对你有帮助。来和边肖一起看看吧。

1.引入正则模块(Regular Expression)

要在python3中使用re,必须引入RE模块。

Import #引入了正则表达式

2.主要使用的方法 match(), 从左到右进行匹配

#pattern是要验证的规则。

#str是要检查的字符串。

result=re.match(模式,字符串)

#如果结果不是None,group方法将从结果中提取数据。

3. 正则表达式

1单字符匹配规则

字符函数。匹配任何1个字符(除了\n)

[]匹配[]中列出的字符

\d匹配数字,即0-9。

\D匹配非数字,即匹配非数字的字符。

\s匹配空白,即空格\tab

\S匹配非空白字符,\s不匹配。

\w伴随单词字符,a-z,A-Z,0-9,_

\W匹配非单词字符,\w不匹配。

2表示数量的规则

字符函数

*匹配前一个字符0次,多次或无限次,可选,可选。

匹配前一个字符一次、多次或无限次,直到它出现一次。

?匹配前一个字符一次或0次,一次或不匹配。

{m}匹配前一个字符m次。

{m,}匹配前一个字符至少m次。

{m,n}匹配前一个字符m到n次。

例1:验证手机号是否符合规则(不考虑边界问题)

#首先,知道手机号的规则

#1.所有的数字都是2。长度是11 3。第一个数字是1 4。第二个数字是35678中的一个。

pattern='1[35678]\d{9} '

phoneStr='18230092223 '

result=re.match(模式,phoneStr)

result.group()

#执行结果如下:

4. 原始字符串raw, 先来看如下实例:

上图:在str赋值' \nabc '前加' r '后,python解释器会自动给str的值' \nabc '加一个' '。

当str被打印时,它可以保持原来的字符串值' \nabc '被打印。

例2:(原字符串在正则表达式中的应用)

如果没有原始的自付R,那么我们必须这样做:在pattern中添加双'',以避免在转义字符中减少' '。会比较麻烦。

当我们使用R原字符串时,就不用考虑字符串的传递,更容易解决字符匹配的问题。

5. 表示边界

字符函数

匹配字符串的开头

$匹配字符串的结尾

\b匹配单词的边界。

\B匹配非单词边界

例三: 边界(制定规则来匹配str="ho ve r")

进口re

#定义匹配字符串的规则='ho ve r '

#1.从一封信开始

#2.中间有空字符

# 3.匹配字边界定义在VE的两侧。

'模式=r'^\w '

谁有时间

result=re.match(模式,字符串)

result.group()

6. 匹配分组

字符函数

|匹配左边和右边的任何表达式。

(ab)将括号中的字符归为一组。

\num是指由分组编号匹配的字符串。

(?Pname)组别名。

(?P=name)指的是别名组匹配的字符串。

例四: 匹配出0-100之间的数字

进口re

#匹配0到100之间的数字

#首先:正则化是从左到右匹配。

#经过分析:0-100可以分为三部分

#1.0 '0$'

#2.100 '100$'

#3.1-99“[1-9]\ d { 0,1}$”

#所以整合如下

pattern=r'0$|100$|[1-9]\d{0,1}$ '

#测试数据为0,3,27,100,123。

结果=重新匹配(模式,' 27 ')

result.group()

#考虑到0到1-99,上述模式也可以缩写为:pattern=r'100$|[1-9]?\d{0,1}$ '

#测试结果如下:

例五: 匹配分组,获取页面中的h1标签中的内容

进口re

#匹配分组,获取页面h1标签中的内容,抓取时会用到。

你好,世界!h1 '

pattern=r'h1(。*)/h1 '

result=re.match(模式,字符串)

result.group()

#执行下图。

例六: 分组引用, 精确获取多个标签内的内容

进口re

#引用分组,并准确获取多个标签中的内容

#'\1 '是对第一个分组的引用,类似地.

你好,世界!/h1/span '

pattern=r '(。)(.).*/\2/\1'

result=re.match(模式,字符串)

结果.组()

#执行下图:

例七-2:分组起别名

进口re

#组中的别名

你好,世界!/h1/span '

pattern='(?Pkey1。)(?Pkey2。)(?Pnr。*)/(?P=key2)/(?' P=key1)'

result=re.match(模式,字符串)

结果.组()

#执行下图:

以上对python3中RE(正则表达式)-的详细总结,就是边肖与大家分享的全部内容。希望能给你一个参考,多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: