常见的python正则用法实例讲解

作者:2778085001 时间:2023-03-11 23:11:29 

下面列出Python正则表达式的几种匹配用法:
此外,关于正则的一切http://deerchao.net/tutorials/regex/regex.htm 

1.测试正则表达式是否匹配字符串的全部或部分 


regex=ur"" #正则表达式
if re.search(regex, subject):
do_something()
else:
do_anotherthing()

2.测试正则表达式是否匹配整个字符串 


regex=ur"\Z" #正则表达式末尾以\Z结束
if re.match(regex, subject):
    do_something()
else:
    do_anotherthing()

3.创建一个匹配对象,然后通过该对象获得匹配细节(Create an object with details about how the regex matches (part of) a string) 


regex=ur"" #正则表达式
match = re.search(regex, subject)
if match:
    # match start: match.start()
    # match end (exclusive): atch.end()
    # matched text: match.group()
    do_something()
else:
    do_anotherthing()

4.获取正则表达式所匹配的子串(Get the part of a string matched by the regex) 


regex=ur"" #正则表达式
match = re.search(regex, subject)
if match:
    result = match.group()
else:
    result = ""

5. 获取捕获组所匹配的子串(Get the part of a string matched by a capturing group) 


regex=ur"" #正则表达式
match = re.search(regex, subject)
if match:
    result = match.group(1)
else:
    result = ""

6. 获取有名组所匹配的子串(Get the part of a string matched by a named group) 


regex=ur"" #正则表达式
match = re.search(regex, subject)
if match:
result = match.group"groupname")
else:
result = ""

7. 将字符串中所有匹配的子串放入数组中(Get an array of all regex matches in a string) 

result = re.findall(regex, subject)

8.遍历所有匹配的子串(Iterate over all matches in a string) 


for match in re.finditer(r"<(.*?)\s*.*?/\1>", subject)
&nbsp;&nbsp;&nbsp;&nbsp;# match start: match.start()
&nbsp;&nbsp;&nbsp;&nbsp;# match end (exclusive): atch.end()
&nbsp;&nbsp;&nbsp;&nbsp;# matched text: match.group()

9.通过正则表达式字符串创建一个正则表达式对象(Create an object to use the same regex for many operations) 

reobj = re.compile(regex)

10.用法1的正则表达式对象版本(use regex object for if/else branch whether (part of) a string can be matched) 


reobj = re.compile(regex)
if reobj.search(subject):
&nbsp;&nbsp;&nbsp;&nbsp;do_something()
else:
&nbsp;&nbsp;&nbsp;&nbsp;do_anotherthing()

11.用法2的正则表达式对象版本(use regex object for if/else branch whether a string can be matched entirely) 


reobj = re.compile(r"\Z")#正则表达式末尾以\Z 结束
if reobj.match(subject):
&nbsp;&nbsp;&nbsp;&nbsp;do_something()
else:
&nbsp;&nbsp;&nbsp;&nbsp;do_anotherthing()

 12.创建一个正则表达式对象,然后通过该对象获得匹配细节(Create an object with details about how the regex object matches (part of) a string) 


reobj = re.compile(regex)
match = reobj.search(subject)
if match:
&nbsp;&nbsp;&nbsp;&nbsp;# match start: match.start()
&nbsp;&nbsp;&nbsp;&nbsp;# match end (exclusive): atch.end()
&nbsp;&nbsp;&nbsp;&nbsp;# matched text: match.group()
&nbsp;&nbsp;&nbsp;&nbsp;do_something()
else:
&nbsp;&nbsp;&nbsp;&nbsp;do_anotherthing()

13.用正则表达式对象获取匹配子串(Use regex object to get the part of a string matched by the regex) 


reobj = re.compile(regex)
match = reobj.search(subject)
if match:
&nbsp;&nbsp;&nbsp;&nbsp;result = match.group()
else:
&nbsp;&nbsp;&nbsp;&nbsp;result = ""

14.用正则表达式对象获取捕获组所匹配的子串(Use regex object to get the part of a string matched by a capturing group) 


reobj = re.compile(regex)
match = reobj.search(subject)
if match:
&nbsp;&nbsp;&nbsp;&nbsp;result = match.group(1)
else:
&nbsp;&nbsp;&nbsp;&nbsp;result = ""

15.用正则表达式对象获取有名组所匹配的子串(Use regex object to get the part of a string matched by a named group) 


reobj = re.compile(regex)
match = reobj.search(subject)
if match:
&nbsp;&nbsp;&nbsp;&nbsp;result = match.group("groupname")
else:
&nbsp;&nbsp;&nbsp;&nbsp;result = ""

16.用正则表达式对象获取所有匹配子串并放入数组(Use regex object to get an array of all regex matches in a string) 

reobj = re.compile(regex)
 result = reobj.findall(subject)

17.通过正则表达式对象遍历所有匹配子串(Use regex object to iterate over all matches in a string) 

reobj = re.compile(regex)for match in reobj.finditer(subject): &nbsp;&nbsp;&nbsp;&nbsp;# match start: match.start() &nbsp;&nbsp;&nbsp;&nbsp;# match end (exclusive): match.end() &nbsp;&nbsp;&nbsp;&nbsp;# matched text: match.group()

18.字符串替换
 1).替换所有匹配的子串 

#用newstring替换subject中所有与正则表达式regex匹配的子串
result = re.sub(regex, newstring, subject)

2).替换所有匹配的子串(使用正则表达式对象) 

reobj = re.compile(regex)
 result = reobj.sub(newstring, subject)

19.字符串拆分
 1).字符串拆分 

result = re.split(regex, subject)

2).字符串拆分(使用正则表示式对象)
reobj = re.compile(regex)
 result = reobj.split(subject)

标签:python,正则
0
投稿

猜你喜欢

  • Keras:Unet网络实现多类语义分割方式

    2022-02-26 16:36:49
  • Python中拆分具有多个分隔符的字符串方法实例

    2022-07-01 00:38:20
  • DW CS4初步试用感受

    2008-05-30 12:17:00
  • Qzoneing主题视觉设计分享

    2009-07-21 18:12:00
  • Pandas常用累计、同比、环比等统计方法实践过程

    2021-03-13 01:48:36
  • 简单谈谈python中的语句和语法

    2023-03-03 12:03:13
  • 邮件的协议及服务器工作原理

    2023-11-19 00:48:56
  • 2008北京奥运会倒计时js代码

    2008-01-22 18:18:00
  • Python、PyCharm安装及使用方法(Mac版)详解

    2021-04-19 22:45:42
  • EF(EntityFramework) 插入或更新数据报错的解决方法

    2024-01-20 19:21:42
  • 由浅入深讲解MySQL数据库索引的选择性

    2008-12-17 15:06:00
  • vue实现选中效果

    2024-05-11 09:12:56
  • 用Python解数独的方法示例

    2021-01-31 18:38:44
  • python设置windows桌面壁纸的实现代码

    2023-05-27 02:51:05
  • Python+Pygame实现代码雨动画效果

    2023-12-03 18:43:57
  • Python使用Phantomjs截屏网页的方法

    2022-06-17 15:47:14
  • MySQL 5.0触发器参考教程第1/4页

    2024-01-23 17:03:58
  • win10下Python3.6安装、配置以及pip安装包教程

    2022-09-27 12:29:46
  • MySQL数据库之Purge死锁问题解析

    2024-01-28 05:11:50
  • 浅谈django不使用restframework自定义接口与使用的区别

    2023-11-24 09:44:02
  • asp之家 网络编程 m.aspxhome.com