一. str.split()
str.split(), 这个不支持正则表达式
text = '六安市政府采购中心受六安市人民医院的委托,现对“鼻声反射仪”项目进行竞争性谈判,欢迎具备条件的国内投标供应商参加投标.' ['六安市政府采购中心受六安市人民医院的委托', '现对“鼻声反射仪”项目进行竞争性谈判', '欢迎具备条件的国内投标供应商参加投标。']
二. 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 表示不保留分隔符 print (text.splitlines()) ['六安市政府采购中心受六安市人民医院的委托,', '现对“鼻声反射仪”项目进行竞争性谈判,欢', '迎具备条件的国内投标供应商参加投标。'] text.splitlines(keepends=True) # 设置keepends=True 保留分隔符 text = '六安市政府采购中心受六安市人民医院的委托,\n现对“鼻声反射仪”项\r目进行竞争性谈判,欢\n迎具备条件的国内投标供应商参.投标。‘ # 文本中添加了\r text.splitlines(keepends=True) print (text) ['六安市政府采购中心受六安市人民医院的委托,\n', # text.split与text.splines异同 ['六安市政府采购中心受六安市人民医院的委托,', '现对“鼻声反射仪”项', '目进行竞争性谈判,欢', '迎具备条件的国内投标供应商参加投标。'] ['六安市政府采购中心受六安市人民医院的委托,', '现对“鼻声反射仪”项', '目进行竞争性谈判,欢', '迎具备条件的国内投标供应商参加投标。']
三. re.split()
- 适用场合:文本中分隔符比较多而且复杂的情况;
- 原型:re.split(pattern, string, maxsplit=0) ; pattern表示要分割的字符,pattern如果用()表示保留分隔符,如果用[]表示不保留分隔符,string表示要分割的字符串,maxsplit表示分割的次数,默认一次分割完成,示例如下:
-
text = '重庆建工建材物流有限公司经集团批准对部分设备进行报废处置,现就处置的设备进行公开招标! 请各投标单位按招标文件内容要求参加投标。' s_text_1 = re.split(",", text) ['重庆建工建材物流有限公司经集团批准对部分设备进行报废处置', '现就处置的设备进行公开招标! 请各投标单位按招标文件内容要求参加投标。'] s_text_2 = re.split("(,)", text) ['重庆建工建材物流有限公司经集团批准对部分设备进行报废处置', ',', '现就处置的设备进行公开招标! 请各投标单位按招标文件内容要求参加投标。'] s_text_3 = re.split("[,]", text) ['重庆建工建材物流有限公司经集团批准对部分设备进行报废处置', '现就处置的设备进行公开招标! 请各投标单位按招标文件内容要求参加投标。'] # 说明:从上面结果中可以看出,re.split()默认是用[]的。 # 多个字符分割(text中("!")是英文输入法下的) s_text_4 = re.split("[,!]", text) ['重庆建工建材物流有限公司经集团批准对部分设备进行报废处置', '现就处置的设备进行公开招标', ' 请各投标单位按招标文件内容 要求参加投标。'] text_new = '重庆建工建材物流有限公司经集团批准对部分设备进行报废处置,现就处置的设备进行公开招标, 请各投标单位按招标文件内容要求参加投标。' s_text_5 = re.split("[,]", text_new, maxsplit=0) ['重庆建工建材物流有限公司经集团批准对部分设备进行报废处置', '现就处置的设备进行公开招标', ' 请各投标单位按招标文件内容 要求参加投标。'] s_text_6 = re.split("[,]", text_new, maxsplit=1) ['重庆建工建材物流有限公司经集团批准对部分设备进行报废处置', '现就处置的设备进行公开招标, 请各投标单位按招标文件内容要 求参加投标。'] s_text_7 = re.split("[,]", text_new, maxsplit=2) ['重庆建工建材物流有限公司经集团批准对部分设备进行报废处置', '现就处置的设备进行公开招标', ' 请各投标单位按招标文件内容 要求参加投标。']
参考:[1] Python splitlines()方法
|