使用正则表达式分割字符串

发布于:2024-05-31 ⋅ 阅读:(175) ⋅ 点赞:(0)

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501

split()方法用于实现根据正则表达式分割字符串,并以列表的形式返回。其作用同字符串对象的split()方法类似,所不同的就是分割字符由模式字符串指定。split()方法的语法格式如下:

re.split(pattern, string, [maxsplit], [flags])

参数说明:

l  pattern:表示模式字符串,由要匹配的正则表达式转换而来。

l  string:表示要匹配的字符串。

l  maxsplit:可选参数,表示最大的拆分次数。

l  flags:可选参数,表示标志位,用于控制匹配方式,如是否区分字母大小写。常用的标志如表5所示。

例如,从给定的URL地址中提取出请求地址和各个参数,代码如下:

import re

pattern = r'[?|&]'                         # 定义分割符

url = 'http://www.mingrisoft.com/login.jsp?username="mr"&pwd="mrsoft"'

result = re.split(pattern,url)              # 分割字符串

print(result)

执行结果如下:

['http://www.mingrisoft.com/login.jsp', 'username="mr"', 'pwd="mrsoft"']

场景模拟:微博的@好友栏目中,输入“@明日科技 @扎克伯格 @俞敏洪”(好友名称之间用一个空格区分),即可同时@三个好友。

图标 (35)

  实例10  输出被@的好友名称(应用正则表达式)

在IDLE中创建一个名称为atfriendsplit1.py的文件,然后在该文件中定义一个字符串,内容为“@明日科技 @扎克伯格 @俞敏洪”,然后使用re模块的split()方法对该字符串进行分割,从而获取出好友名称,并输出,代码如下:

import re

str1 = '@明日科技 @扎克伯格 @俞敏洪'

pattern = r'\s*@'

list1 = re.split(pattern,str1)      # 用空格和@或单独的@分割字符串

print('您@的好友有:')

for item in list1:

    if item != "":              # 输出不为空的元素

        print("\n"+item)             # 输出每个好友名

运行结果如图25所示。

图25  输出被@的好友


网站公告

今日签到

点亮在社区的每一天
去签到