Python字符串分割方法总结

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‘]

>>>

原文链接:http://www.revotu.com/python-split-string-methods.html

原文地址:https://www.cnblogs.com/pythonedu/p/9060650.html

时间: 2024-10-14 11:32:14

Python字符串分割方法总结的相关文章

常用的字符串分割方法

起因:前段时间写命令行解析函数(字符串分割比较通用的例子),没有经过深入思考和分析引起了程序死循环,就想了下是否有对应的系统函数可以使用.经过一番搜索之后发现还是有几个可用的字符串分割函数,这里整理下,以作总结及后续查询使用. 当然,如果你觉得自己的字符串处理可以做的很好,可以考虑直接使用字符串查找函数做字符串分割,比如c中的字符串查找函数.CString字符查找函数.string字符查找函数等,更原始点可以直接操作内存. windows下有以下几种可用的字符串分割方法. CString::To

c++字符串分割方法

平常做项目都是用java语言,搞毕业论文的时候,需要用到opengl,而opengl和c++的关系很密切并且参考资料也比较丰富,在程序开发的过程用中到了字符串分割,查api竟然没有找到自带的split函数,在这里记录一下c++字符串分割方法. static void split(const string& src, const string& separator, vector<string>& dest) { string str = src; string subs

字符串分割方法

public static String[] split(String str, String limit) { List<String> result = new ArrayList<String>(); char[] chars = limit.toCharArray(); int length = str.length(); int slice = chars.length - 1; int match = 0, start = 0, count = 1; for (int

Python字符串expandtabs()方法

Python字符串expandtabs()方法返回一个字符串的副本,其中tab字符.使用空格扩展’\t‘,可选地使用给定的制表符大小 - tabize(默认值为8). 语法:str.expandtabs(tabsize = 8) 参数:tabsize - 这指定了替换字符“\t”要替换的字符数. 返回值:此方法返回一个字符串的副本,其中使用空格扩展了“\t”字符. 示例:以下示例显示了expandtabs()方法的用法. >>>s = "a\tbcd\tefg\n1\t2340

Python 字符串分割的方法

在平时工作的时候,发现对于字符串分割的方法用的比较多,下面对分割字符串方法进行总结一下:第一种:split()函数split()函数应该说是分割字符串使用最多的函数用法:str.split('分割符')通过该分割操作后,会返回一个列表. 注:当然如果你的字符串含有一个或者多个空格就直接 str.split() 就可以了 例如: >>> a = "hello,python,Good Night" >>> a.split(',') ['hello', '

Python字符串解析方法汇总

Python字符串方法解析 1.capitalize 将首字母大写,其余的变成小写 print('text'.capitalize()) print('tExt'.capitalize()) 结果: Text Text 2.center  将字符串居中  ljust(从左到右填充),rjust(从右到左填充) a='test' print(a.center(20,'_')) print(a.rjust(20,'_')) 结果: ________test________ _____________

python字符串处理方法

一.combine & duplicate 字符串结合和复制 字符和字符串可以用来相加来组合成一个字符串输出: 字符或字符串复制输出. 二.Extract &Slice 字符串提取和切片 You can extract a substring from a string by using slice. Format: [start:end:step] [:] extracts the all string [start:] from start to the end [:end] from

python字符串格式化方法 format函数的使用

python从2.6开始支持format,新的更加容易读懂的字符串格式化方法, 从原来的% 模式变成新的可读性更强的 花括号声明{}.用于渲染前的参数引用声明, 花括号里可以用数字代表引用参数的序号, 或者 变量名直接引用. 从format参数引入的变量名 . 冒号:. 字符位数声明. 空白自动填补符 的声明 千分位的声明 变量类型的声明: 字符串s.数字d.浮点数f 对齐方向符号 < ^ > 属性访问符中括号 ? 使用惊叹号!后接a .r. s,声明 是使用何种模式, acsii模式.引用_

python字符串连接方法效率比较

方法1:直接通过加号(+)操作符连接 1 website = 'python' + 'tab' + '.com' 方法2:join方法 1 2 listStr = ['python', 'tab', '.com']  website = ''.join(listStr) 方法3:替换 1 website = '%s%s%s' % ('python', 'tab', '.com') 之所以说python 中使用 + 进行字符串连接的操作效率低下,是因为python中字符串是不可变的类型,使用 +