对字符串进行切分的技巧
转载至:http://www.revotu.com/python-split-string-methods.html
对字符串进行切分有两种方法:str.split() 和 re.split()
Python中字符串分割的常用方法是直接调用字符串的str.split
方法,但是其只能指定一种分隔符,如果想指定多个分隔符拆分字符串需要用到re.split
方法(正则表达式的split方法)。
str.split
字符串的split方法函数原型如下,其中sep为指定的分隔符,maxsplit为最大分割次数:
1
|
str.split(sep=None, maxsplit=-1)
|
默认情况下,不指定分隔符时则以空白字符(空格,回车,制表符等)作为分隔符拆分字符串:
1
2
3
4
|
>>> s = 'A B\tC\nD'
>>> s.split()
['A', 'B', 'C', 'D']
>>>
|
在结果列表中,不会包含空字符串:
1
2
3
4
|
>>> s = ' A B\tC\nD\n\n'
>>> s.split()
['A', 'B', 'C', 'D']
>>>
|
指定分隔符:
1
2
3
4
5
6
7
|
>>> s = 'www.google.com'
>>> s.split('.')
['www', 'google', 'com']
>>> s = 'AA||BB||CC||DD'
>>> s.split('||')
['AA', 'BB', 'CC', 'DD']
>>>
|
指定最大分割次数:
1
2
3
4
5
6
7
|
>>> s = 'www.google.com'
>>> s.split('.', 1)
['www', 'google.com']
>>> s = 'AA||BB||CC||DD'
>>> s.split('||', 2)
['AA', 'BB', 'CC||DD']
>>>
|
由此可见,当指定最大分割次数maxsplit
时,结果列表长度为maxsplit+1
。
但是,字符串的split方法只能指定一个分隔符,如下:
1
|
s = 'AAAA,BBBB:CCCC;DDDD'
|
如果想指定逗号、冒号、分号都做为分隔符,字符串的split方法是做不到的,此时要用正则表达式中的split方法。
re.split
正则表达式的split方法原型如下,其中pattern为指定的分隔正则表达式,string为要分割的字符串,maxsplit为最大分割次数,flags为正则表达式用到的通用标志:
1
|
re.split(pattern, string, maxsplit=0, flags=0)
|
参考示例:
1
2
3
4
5
|
>>> import re
>>> s = 'AAAA,BBBB:CCCC;DDDD'
>>> re.split(r'[,:;]', s)
['AAAA', 'BBBB', 'CCCC', 'DDDD']
>>>
|
如果在正则表达式里使用了捕获组也就是括号,则结果列表中也会包含捕获的内容:
1
2
3
4
5
|
>>> import re
>>> s = 'AAAA,BBBB:CCCC;DDDD'
>>> re.split(r'([,:;])', s)
['AAAA', ',', 'BBBB', ':', 'CCCC', ';', 'DDDD']
>>>
|
如果不想在结果中看到分隔符,但仍然想用括号对正则表达式模式进行分组,可以使用非捕获组,以(?:...)
的形式指定,示例如下:
1
2
3
4
5
|
>>> import re
>>> s = 'AAAA,BBBB:CCCC;DDDD'
>>> re.split(r'(?:[,:;])', s)
['AAAA', 'BBBB', 'CCCC', 'DDDD']
>>>
|
指定最大分割次数:
1
2
3
4
5
6
7
|
>>> import re
>>> s = 'AAAA,BBBB:CCCC;DDDD'
>>> re.split(r'[,:;]', s, 1)
['AAAA', 'BBBB:CCCC;DDDD']
>>> re.split(r'[,:;]', s, 2)
['AAAA', 'BBBB', 'CCCC;DDDD']
>>>
|
由此可见,当指定最大分割次数maxsplit
时,结果列表长度为maxsplit+1
。
指定正则表达式中的通用标志flags:
1
2
3
4
|
>>> import re
>>> re.split('[a-f]+', '0a3B9', flags=re.IGNORECASE)
['0', '3', '9']
>>>
|
转载于:https://www.cnblogs.com/confessionlouis/p/9224654.html
对字符串进行切分的技巧相关推荐
- 【算法练习】80.字符串轮转——奇淫技巧
[算法练习]80.字符串轮转--奇淫技巧 ⭐加入组队刷题,每日一题,每天进步⭐ 看完大家的操作,感觉自己太傻了 --leetcode此题热评 前言 哈喽,大家好,我是一条. 糊涂算法,难得糊涂 点击跳 ...
- python设置字符间距_Python中字符串的常见操作技巧总结
本文实例总结了Python中字符串的常见操作技巧.分享给大家供大家参考,具体如下: 反转一个字符串 >>> S = 'abcdefghijklmnop' >>> S ...
- python字符串与文本处理技巧(4): 格式化输出、令牌解析、串上串
1. 以指定列宽格式化字符串 很多情况下,我们有一些长字符串,想以指定的列宽将它们重新格式化. textwarp() import textwrap import oss = "Look i ...
- excel两个字符串相减_Excel技巧—超实用的字符串拆分小技巧
原标题:Excel技巧-超实用的字符串拆分小技巧 点赞再看,养成习惯: 当断不断,反受其乱. 我们每天都在Excel中各种操作,本质上来说就是对各种数据进行操作,而这些数据专业点来说就是字符串.因此熟 ...
- python--中英文混合字符串的切分(中文按字断开,英文按单词分开,数字按空格等特殊符号断开)
待切分句子: s = "12.China's Legend Holdings will split its several business arms to go public on sto ...
- C语言,给定字符串,切分输出
描述: 给定一个由英文字符.数字.空格和英文标点符号组成的字符串,长度不超过2000,请将其切分为单词,要求去掉所有的非英文字母,每行输出一个单词. 输入: Python was created in ...
- shell脚本调用python脚本,获取python返回值并且做字符串的切分
#!/usr/bin/python # coding=utf-8import sys import pymysql#pymysql连接mysql def getmsg():sysconn = pymy ...
- php针对中文的字符串函数,php截取中文字符串函数实例_php技巧
本文实例讲述了php截取中文字符串函数.分享给大家供大家参考.具体实现方法如下: 代码如下: //中文字符串截取 function substr_zh($string,$sublen,$start=0 ...
- python字符串与文本处理技巧(3):字符剔除、字符对齐、字符拼接、字符插入变量
1. 删除字符串中不需要的字符 去掉文本字符串开头,结尾或者中间不想要的字符,比如空白. strip() & Istrip() & rstrip() strip() 方法能用于删除开始 ...
最新文章
- 在一台电脑上使用两个github账号
- 西瓜书_阶段1_作业参考
- Xamarin.android Activity动画切换效果实现
- 三星note4安装linux,Leanote Ubuntu 源码安装
- Vue使用vue-pull-refresh插件实现下拉刷新
- 476. 数字的补数
- 蚂蚁金服 Service Mesh 落地实践与挑战|成都Service Mesh沙龙预告
- 疯狂采购·四天满世界乱跑·为了新的改变而战
- 网页游戏服务器的源代码武者无敌_周志宏:私服游戏 别拿法律当儿戏
- 简书 echarts mysql_echarts入门教程
- 1.100个房产测量常见问题 2. 现有的商用房产测绘软件 3.问题_拔剑-浆糊的传说_新浪博客...
- 怎么把腾讯视频qlv格式转换成为mp4视频(无需软件详细操作)
- Windows MSDOS的批处理文件命令
- SQL AlawaysOn 之三:SQL服务器加入域
- 计算机视觉之图像增广(翻转、随机裁剪、颜色变化[亮度、对比度、饱和度、色调])
- 保险怎么买?有哪些销售渠道?各自的优缺点是什么?
- 最新精美UI外卖小生鲜配送程序源码+支持优惠券
- 股票短线详解,股票短线的方法技巧?
- 别忽略国美之争的真正遗产
- 阿里巴巴李云的一封信