Python re.split方法分割字符串的实现示例

 更新时间:2022年08月19日 12:16:57   作者:Chao Hsin-fang  
本文主要介绍了Python re.split方法分割字符串的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

re.split方法

注:使用前需要引入包(import re)

功能:split能够按照所能匹配的字串将字符串进行切分,返回切分后的字符串列表

形式:

re.split(pattern, string[, maxsplit=0, flags=0])
  • pattern:匹配的字符串
  • string:需要切分的字符串
  • maxsplit:分隔次数,默认为0(即不限次数)
  • flags:标志位,用于控制正则表达式的匹配方式,比如:是否区分大小写

问题

你需要将一个字符串分割为多个字段,但是分隔符(还有周围的空格)并不是固定的。

解决方案

string 对象的 split() 方法只适应于非常简单的字符串分割情形, 它并不允许有多个分隔符或者是分隔符周围不确定的空格。 当你需要更加灵活的切割字符串的时候,最好使用 re.split() 方法:

>>> line = 'asdf fjdk; afed, fjek,asdf, foo'
>>> import re
>>> re.split(r'[;,\s]\s*', line)
['asdf', 'fjdk', 'afed', 'fjek', 'asdf', 'foo']

讨论

函数 re.split() 是非常实用的,因为它允许你为分隔符指定多个正则模式。 比如,在上面的例子中,分隔符可以是逗号,分号或者是空格,并且后面紧跟着任意个的空格。 只要这个模式被找到,那么匹配的分隔符两边的实体都会被当成是结果中的元素返回。 返回结果为一个字段列表,这个跟 str.split() 返回值类型是一样的。

当你使用 re.split() 函数时候,需要特别注意的是正则表达式中是否包含一个括号捕获分组。 如果使用了捕获分组,那么被匹配的文本也将出现在结果列表中。比如,观察一下这段代码运行后的结果:

>>> fields = re.split(r'(;|,|\s)\s*', line)
>>> fields
['asdf', ' ', 'fjdk', ';', 'afed', ',', 'fjek', ',', 'asdf', ',', 'foo']
>>>

获取分割字符在某些情况下也是有用的。 比如,你可能想保留分割字符串,用来在后面重新构造一个新的输出字符串:

>>> values = fields[::2]
>>> delimiters = fields[1::2] + ['']
>>> values
['asdf', 'fjdk', 'afed', 'fjek', 'asdf', 'foo']
>>> delimiters
[' ', ';', ',', ',', ',', '']
>>> # Reform the line using the same delimiters
>>> ''.join(v+d for v,d in zip(values, delimiters))
'asdf fjdk;afed,fjek,asdf,foo'
>>>

如果你不想保留分割字符串到结果列表中去,但仍然需要使用到括号来分组正则表达式的话, 确保你的分组是非捕获分组,形如 (?:...) 。比如:

>>> re.split(r'(?:,|;|\s)\s*', line)
['asdf', 'fjdk', 'afed', 'fjek', 'asdf', 'foo']
>>>

到此这篇关于Python re.split方法分割字符串的实现示例的文章就介绍到这了,更多相关Python re.split分割字符串内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 通过代码实例了解Python sys模块

    通过代码实例了解Python sys模块

    这篇文章主要介绍了通过代码实例了解Python sys模块,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • python小程序基于Jupyter实现天气查询的方法

    python小程序基于Jupyter实现天气查询的方法

    这篇文章主要介绍了python小程序基于Jupyter实现天气查询的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Python读取csv文件做K-means分析详情

    Python读取csv文件做K-means分析详情

    这篇文章主要介绍了Python读取csv文件做K-means分析详情,基于时间序列的分析2D读取时间列和高程做一下分析。下文更多详细介绍需要的小伙伴可以参考一下
    2022-03-03
  • python实现去掉字符串中的\xa0、\t、\n

    python实现去掉字符串中的\xa0、\t、\n

    这篇文章主要介绍了python实现去掉字符串中的\xa0、\t、\n方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Python使用cx_Oracle调用Oracle存储过程的方法示例

    Python使用cx_Oracle调用Oracle存储过程的方法示例

    这篇文章主要介绍了Python使用cx_Oracle调用Oracle存储过程的方法,结合具体实例分析了Python中通过cx_Oracle调用PL/SQL的具体步骤与相关操作技巧,需要的朋友可以参考下
    2017-10-10
  • python实现动态创建类的方法分析

    python实现动态创建类的方法分析

    这篇文章主要介绍了python实现动态创建类的方法,结合实例形式分析了Python动态创建类的原理、实现方法及相关操作技巧,需要的朋友可以参考下
    2019-06-06
  • Python+Kepler.gl实现时间轮播地图过程解析

    Python+Kepler.gl实现时间轮播地图过程解析

    这篇文章主要介绍了Python+Kepler.gl实现时间轮播地图过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • pyecharts动态轨迹图的实现示例

    pyecharts动态轨迹图的实现示例

    这篇文章主要介绍了pyecharts动态轨迹图的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • Python for Informatics 第11章之正则表达式(四)

    Python for Informatics 第11章之正则表达式(四)

    这篇文章主要介绍了Python for Informatics 第11章之正则表达式(四) 的相关资料,需要的朋友可以参考下
    2016-04-04
  • django数据库迁移migration实现

    django数据库迁移migration实现

    这篇文章主要介绍了django数据库迁移migration实现,迁移任务是根据对models.py文件的改动情况,添加或者删除表和列,下面详细的相关内容需要的小伙伴可以参考一下
    2022-02-02

最新评论