一. str.split()
str.split(), 这个不支持正则表达式
text = '六安市政府采购中心受六安市人民医院的委托,现对“鼻声反射仪”项目进行竞争性谈判,欢迎具备条件的国内投标供应商参加投标.'
text.split(',')
"""
['六安市政府采购中心受六安市人民医院的委托', '现对“鼻声反射仪”项目进行竞争性谈判', '欢迎具备条件的国内投标供应商参加投标。']
"""
二. str.splitlines()
splitlines() 按照行界符('\r', '\r\n', \n'等)分隔,返回一个包含各行作为元素的列表,默认不包含行界符。能被splitlines()识别的分隔符如下:
行界符 | 描述 |
---|---|
\n | Line Feed 换行 |
\r | Carriage Return 回车 |
\r\n | Carriage Return + Line Feed 回车+换行 |
\v or \x0b | Line Tabulation |
\f or \x0c | Form Feed 换页 |
\x1c | File Separator 文件分隔符 |
\x1d | Group Separator 组分隔符 |
\x1e | Record Separator 记录分隔符号 |
\x85 | Next Line (C1 Control Code) |
\u2028 | Line Separator 行分隔符 |
\u2029 | Paragraph Separator 段落分隔符号 |
text = '六安市政府采购中心受六安市人民医院的委托,\n现对“鼻声反射仪”项目进行竞争性谈判,欢\n迎具备条件的国内投标供应商参加.标 。'
text.splitlines() # 默认使用\n进行分割,默认keepends=False 表示不保留分隔符
"""
['六安市政府采购中心受六安市人民医院的委托,', '现对“鼻声反射仪”项目进行竞争性谈判,欢', '迎具备条件的国内投标供应商参加投标。']
"""
text.splitlines(keepends=True) # 设置keepends=True 保留分隔符
text = '六安市政府采购中心受六安市人民医院的委托,\n现对“鼻声反射仪”项\r目进行竞争性谈判,欢\n迎具备条件的国内投标供应商参.投标。‘ # 文本中添加了\r
text.splitlines(keepends=True)
"""
['六安市政府采购中心受六安市人民医院的委托,\n',
'现对“鼻声反射仪”项\r',
'目进行竞争性谈判,欢\n',
'迎具备条件的国内投标供应商参加投标。']
"""
# text.split与text.splines异同
text.split()
"""
['六安市政府采购中心受六安市人民医院的委托,', '现对“鼻声反射仪”项', '目进行竞争性谈判,欢', '迎具备条件的国内投标供应商参加投标。']
"""
text.splitlines()
"""
['六安市政府采购中心受六安市人民医院的委托,', '现对“鼻声反射仪”项', '目进行竞争性谈判,欢', '迎具备条件的国内投标供应商参加投标。']
"""
''.split('\n')
"""
['']
"""
''.splitlines()
"""
[]
"""
三. re.split()
- 适用场合:文本中分隔符比较多而且复杂的情况;
- 原型:re.split(pattern, string, maxsplit=0) ; pattern表示要分割的字符,pattern如果用()表示保留分隔符,如果用[]表示不保留分隔符,string表示要分割的字符串,maxsplit表示分割的次数,默认一次分割完成,示例如下:
-
import re text = '重庆建工建材物流有限公司经集团批准对部分设备进行报废处置,现就处置的设备进行公开招标! 请各投标单位按招标文件内容要求参加投标。' s_text_1 = re.split(",", text) print(s_text) """ ['重庆建工建材物流有限公司经集团批准对部分设备进行报废处置', '现就处置的设备进行公开招标! 请各投标单位按招标文件内容要求参加投标。'] """ s_text_2 = re.split("(,)", text) print(s_text2) """ ['重庆建工建材物流有限公司经集团批准对部分设备进行报废处置', ',', '现就处置的设备进行公开招标! 请各投标单位按招标文件内容要求参加投标。'] """ s_text_3 = re.split("[,]", text) print(s_text) """ ['重庆建工建材物流有限公司经集团批准对部分设备进行报废处置', '现就处置的设备进行公开招标! 请各投标单位按招标文件内容要求参加投标。'] """ # 说明:从上面结果中可以看出,re.split()默认是用[]的。 # 多个字符分割(text中("!")是英文输入法下的) s_text_4 = re.split("[,!]", text) print(s_text_4) """ ['重庆建工建材物流有限公司经集团批准对部分设备进行报废处置', '现就处置的设备进行公开招标', ' 请各投标单位按招标文件内容 要求参加投标。'] """ text_new = '重庆建工建材物流有限公司经集团批准对部分设备进行报废处置,现就处置的设备进行公开招标, 请各投标单位按招标文件内容要求参加投标。' s_text_5 = re.split("[,]", text_new, maxsplit=0) print(s_text_5) """ ['重庆建工建材物流有限公司经集团批准对部分设备进行报废处置', '现就处置的设备进行公开招标', ' 请各投标单位按招标文件内容 要求参加投标。'] """ s_text_6 = re.split("[,]", text_new, maxsplit=1) print(s_text_6) """ ['重庆建工建材物流有限公司经集团批准对部分设备进行报废处置', '现就处置的设备进行公开招标, 请各投标单位按招标文件内容要 求参加投标。'] """ s_text_7 = re.split("[,]", text_new, maxsplit=2) print(s_text_7) """ ['重庆建工建材物流有限公司经集团批准对部分设备进行报废处置', '现就处置的设备进行公开招标', ' 请各投标单位按招标文件内容 要求参加投标。'] """
参考:[1] Python splitlines()方法