分享

(python3)str.split()、str.splitlines()、re.split()分句使用方法

 hdzgx 2020-01-05

一. str.split()

str.split(), 这个不支持正则表达式

  1. text = '六安市政府采购中心受六安市人民医院的委托,现对“鼻声反射仪”项目进行竞争性谈判,欢迎具备条件的国内投标供应商参加投标.'
  2. text.split(',')
  3. """
  4. ['六安市政府采购中心受六安市人民医院的委托', '现对“鼻声反射仪”项目进行竞争性谈判', '欢迎具备条件的国内投标供应商参加投标。']
  5. """

二. 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 段落分隔符号
  1. text = '六安市政府采购中心受六安市人民医院的委托,\n现对“鼻声反射仪”项目进行竞争性谈判,欢\n迎具备条件的国内投标供应商参加.标 。'
  2. text.splitlines() # 默认使用\n进行分割,默认keepends=False 表示不保留分隔符
  3. print (text.splitlines())
  4. """
  5. ['六安市政府采购中心受六安市人民医院的委托,', '现对“鼻声反射仪”项目进行竞争性谈判,欢', '迎具备条件的国内投标供应商参加投标。']
  6. """
  7. text.splitlines(keepends=True) # 设置keepends=True 保留分隔符
  8. text = '六安市政府采购中心受六安市人民医院的委托,\n现对“鼻声反射仪”项\r目进行竞争性谈判,欢\n迎具备条件的国内投标供应商参.投标。‘ # 文本中添加了\r
  9. text.splitlines(keepends=True)
  10. print (text)
  11. """
  12. ['六安市政府采购中心受六安市人民医院的委托,\n',
  13. '现对“鼻声反射仪”项\r',
  14. '目进行竞争性谈判,欢\n',
  15. '迎具备条件的国内投标供应商参加投标。']
  16. """
  17. # text.split与text.splines异同
  18. text.split()
  19. """
  20. ['六安市政府采购中心受六安市人民医院的委托,', '现对“鼻声反射仪”项', '目进行竞争性谈判,欢', '迎具备条件的国内投标供应商参加投标。']
  21. """
  22. text.splitlines()
  23. """
  24. ['六安市政府采购中心受六安市人民医院的委托,', '现对“鼻声反射仪”项', '目进行竞争性谈判,欢', '迎具备条件的国内投标供应商参加投标。']
  25. """
  26. ''.split('\n')
  27. """
  28. ['']
  29. """
  30. ''.splitlines()
  31. """
  32. []
  33. """

 

 

三. re.split() 

  1. 适用场合:文本中分隔符比较多而且复杂的情况;
  2. 原型:re.split(pattern, string, maxsplit=0) ; pattern表示要分割的字符,pattern如果用()表示保留分隔符,如果用[]表示不保留分隔符,string表示要分割的字符串,maxsplit表示分割的次数,默认一次分割完成,示例如下:
    1. import re
    2. text = '重庆建工建材物流有限公司经集团批准对部分设备进行报废处置,现就处置的设备进行公开招标! 请各投标单位按招标文件内容要求参加投标。'
    3. s_text_1 = re.split(",", text)
    4. print(s_text)
    5. """
    6. ['重庆建工建材物流有限公司经集团批准对部分设备进行报废处置', '现就处置的设备进行公开招标! 请各投标单位按招标文件内容要求参加投标。']
    7. """
    8. s_text_2 = re.split("(,)", text)
    9. print(s_text2)
    10. """
    11. ['重庆建工建材物流有限公司经集团批准对部分设备进行报废处置', ',', '现就处置的设备进行公开招标! 请各投标单位按招标文件内容要求参加投标。']
    12. """
    13. s_text_3 = re.split("[,]", text)
    14. print(s_text)
    15. """
    16. ['重庆建工建材物流有限公司经集团批准对部分设备进行报废处置', '现就处置的设备进行公开招标! 请各投标单位按招标文件内容要求参加投标。']
    17. """
    18. # 说明:从上面结果中可以看出,re.split()默认是用[]的。
    19. # 多个字符分割(text中("!")是英文输入法下的)
    20. s_text_4 = re.split("[,!]", text)
    21. print(s_text_4)
    22. """
    23. ['重庆建工建材物流有限公司经集团批准对部分设备进行报废处置', '现就处置的设备进行公开招标', ' 请各投标单位按招标文件内容 要求参加投标。']
    24. """
    25. text_new = '重庆建工建材物流有限公司经集团批准对部分设备进行报废处置,现就处置的设备进行公开招标, 请各投标单位按招标文件内容要求参加投标。'
    26. s_text_5 = re.split("[,]", text_new, maxsplit=0)
    27. print(s_text_5)
    28. """
    29. ['重庆建工建材物流有限公司经集团批准对部分设备进行报废处置', '现就处置的设备进行公开招标', ' 请各投标单位按招标文件内容 要求参加投标。']
    30. """
    31. s_text_6 = re.split("[,]", text_new, maxsplit=1)
    32. print(s_text_6)
    33. """
    34. ['重庆建工建材物流有限公司经集团批准对部分设备进行报废处置', '现就处置的设备进行公开招标, 请各投标单位按招标文件内容要 求参加投标。']
    35. """
    36. s_text_7 = re.split("[,]", text_new, maxsplit=2)
    37. print(s_text_7)
    38. """
    39. ['重庆建工建材物流有限公司经集团批准对部分设备进行报废处置', '现就处置的设备进行公开招标', ' 请各投标单位按招标文件内容 要求参加投标。']
    40. """

    参考:[1] Python splitlines()方法

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多