转载至: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

对字符串进行切分的技巧相关推荐

  1. 【算法练习】80.字符串轮转——奇淫技巧

    [算法练习]80.字符串轮转--奇淫技巧 ⭐加入组队刷题,每日一题,每天进步⭐ 看完大家的操作,感觉自己太傻了 --leetcode此题热评 前言 哈喽,大家好,我是一条. 糊涂算法,难得糊涂 点击跳 ...

  2. python设置字符间距_Python中字符串的常见操作技巧总结

    本文实例总结了Python中字符串的常见操作技巧.分享给大家供大家参考,具体如下: 反转一个字符串 >>> S = 'abcdefghijklmnop' >>> S ...

  3. python字符串与文本处理技巧(4): 格式化输出、令牌解析、串上串

    1. 以指定列宽格式化字符串 很多情况下,我们有一些长字符串,想以指定的列宽将它们重新格式化. textwarp() import textwrap import oss = "Look i ...

  4. excel两个字符串相减_Excel技巧—超实用的字符串拆分小技巧

    原标题:Excel技巧-超实用的字符串拆分小技巧 点赞再看,养成习惯: 当断不断,反受其乱. 我们每天都在Excel中各种操作,本质上来说就是对各种数据进行操作,而这些数据专业点来说就是字符串.因此熟 ...

  5. python--中英文混合字符串的切分(中文按字断开,英文按单词分开,数字按空格等特殊符号断开)

    待切分句子: s = "12.China's Legend Holdings will split its several business arms to go public on sto ...

  6. C语言,给定字符串,切分输出

    描述: 给定一个由英文字符.数字.空格和英文标点符号组成的字符串,长度不超过2000,请将其切分为单词,要求去掉所有的非英文字母,每行输出一个单词. 输入: Python was created in ...

  7. shell脚本调用python脚本,获取python返回值并且做字符串的切分

    #!/usr/bin/python # coding=utf-8import sys import pymysql#pymysql连接mysql def getmsg():sysconn = pymy ...

  8. php针对中文的字符串函数,php截取中文字符串函数实例_php技巧

    本文实例讲述了php截取中文字符串函数.分享给大家供大家参考.具体实现方法如下: 代码如下: //中文字符串截取 function substr_zh($string,$sublen,$start=0 ...

  9. python字符串与文本处理技巧(3):字符剔除、字符对齐、字符拼接、字符插入变量

    1. 删除字符串中不需要的字符 去掉文本字符串开头,结尾或者中间不想要的字符,比如空白. strip() & Istrip() & rstrip() strip() 方法能用于删除开始 ...

最新文章

  1. 在一台电脑上使用两个github账号
  2. 西瓜书_阶段1_作业参考
  3. Xamarin.android Activity动画切换效果实现
  4. 三星note4安装linux,Leanote Ubuntu 源码安装
  5. Vue使用vue-pull-refresh插件实现下拉刷新
  6. 476. 数字的补数
  7. 蚂蚁金服 Service Mesh 落地实践与挑战|成都Service Mesh沙龙预告
  8. 疯狂采购·四天满世界乱跑·为了新的改变而战
  9. 网页游戏服务器的源代码武者无敌_周志宏:私服游戏 别拿法律当儿戏
  10. 简书 echarts mysql_echarts入门教程
  11. 1.100个房产测量常见问题  2. 现有的商用房产测绘软件 3.问题_拔剑-浆糊的传说_新浪博客...
  12. 怎么把腾讯视频qlv格式转换成为mp4视频(无需软件详细操作)
  13. Windows MSDOS的批处理文件命令
  14. SQL AlawaysOn 之三:SQL服务器加入域
  15. 计算机视觉之图像增广(翻转、随机裁剪、颜色变化[亮度、对比度、饱和度、色调])
  16. 保险怎么买?有哪些销售渠道?各自的优缺点是什么?
  17. 最新精美UI外卖小生鲜配送程序源码+支持优惠券
  18. 股票短线详解,股票短线的方法技巧?
  19. 别忽略国美之争的真正遗产
  20. 阿里巴巴李云的一封信

热门文章

  1. 将X映射到0-1、a-b 公式(归一化公式)
  2. python findall用法_Python 正则表达re模块之findall()详解
  3. XOR-gun (位运算,思维,区间暴力)
  4. 云上环保监测解决方案
  5. 谁是王者?七款主流图形数据库功能对比
  6. 【C】cJSON使用以及在stm32中的应用
  7. 解决方案:Win10如何使用bash批处理命令
  8. 社区跑腿智慧服务系统
  9. 欢迎访问我的网站——翔宇亭IT乐园
  10. 媒体娱乐行业案例 - Splashtop 助力数海文化远程办公