python分割字符串输出_python字符串分割「建议收藏」

python分割字符串输出_python字符串分割「建议收藏」内置split()函数str.split(sep=None,maxsplit=-1)sep为自定义分割符,maxsplit为最大分割次数,默认值-1进行全部分割注意以下区别:str.split()以空格分割,包括连续空格str.split(”)同样以空格分割,但是不能识别连续空格,会返回两空格之间的空字符串python3docre模块的split()函数re.split(patte…

大家好,又见面了,我是你们的朋友全栈君。

内置split()函数 str.split(sep=None, maxsplit=-1)

sep为自定义分割符,maxsplit为最大分割次数,默认值-1进行全部分割

注意以下区别:

str.split() 以空格分割,包括连续空格

str.split(‘ ‘) 同样以空格分割,但是不能识别连续空格,会返回两空格之间的空字符串

python3 doc

re模块的split()函数 re.split(pattern, string, maxsplit=0, flags=0)

pattern分割模式

正则表达式描述pattern

官方文档中举例以下几种:

r’\W+’ 非单词字符的字符作为分割符

r'(\W+)’ 以括号包裹正则表达式则会在结果中保留用来分割的字符

‘[a-f]+’ a-f组成的字符串作为分割符

输入

print(re.split(r’\W+’,’Words, words, word.’))

print(re.split(r’\W+’,’Words,,words,word.’))

print(re.split(r'[a-f]+’,’a3b4gf’,flags = re.IGNORECASE))

输出

[‘Words’, ‘words’, ‘word’, ”]

[‘Words’, ‘,,’, ‘words’, ‘,’, ‘word’, ‘.’, ”]

[”, ‘3’, ‘4g’, ”]

其他参数

maxsplit和内置的split函数一样,只不过以0作为缺省值

flags:用来修改pattern表达式的功能re.IGNORECASE忽略大小写 其他的可用值?更多

记录一个奇怪的现象:

print(re.split(r'[a-f]+’,’a3b4gf’,flags = re.IGNORECASE))

print(re.split(r'[a-f]+’,’a3b4gf’,re.IGNORECASE))

输出

[”, ‘3’, ‘4g’, ”]

[”, ‘3’, ‘4gf’]

传入参数包括”flags = “和不包括时,结果不同,原因不太清楚。此外这个测试用例表明分割符前后的内容都会包含在结果中,所以输出开头就有一个空字符串,这一点很古怪。

去除连续分割符之间的空字符串

以上两个函数的简单实用经常在结果中产生空字符串,解决办法解决如下,使用re.split()。

使用列表推导式

[x for x in re.split(r'[,\s]’,str) if x] 逗号、空格分割字符串并且去除连续的分割符

使用正则表达式

sList = re.split(r”[,\s]+”,s.strip())

使用多字符字符分割时,用’+’修饰就能过滤重复分割符了。

输入1:3 4, 7 3 输出:[‘3’, ‘4’, ‘7’, ‘3’]

输入2:4,, 5 输出:[‘4’, ‘5’]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141623.html原文链接:https://javaforall.net

(1)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux下的5款主流高可用集群软件介绍[通俗易懂]

    Linux下的5款主流高可用集群软件介绍[通俗易懂]Linux集群主要分成三大类:高可用集群(HighAvailabilityCluster)、负载均衡集群(LoadBalanceCluster)、科学计算集群(HighPerformanceComputingCluster)。其中高可用集群具有保障应用程序持续提供服务的能力,可以将因软、硬件、人为造成的故障对业务的影响降低到最小程度。在高可用集群中,最常见的就是两个节点做成的HA集群,有很多通俗的名称,比如“双机热备”、“双机互备”、“双机”。而在Linux平台下常见的高可用集群软件有

    2022年10月16日
    4
  • @scheduled注解配置时间(spring定时器注解)

    开发相关链接:https://blog.csdn.net/xubenxismile/article/details/96480780@Scheduled注解的使用这里不详细说明,直接对8个参数进行讲解。参数详解1、cron该参数接收一个cron表达式,cron表达式是一个字符串,字符串以5或6个空格隔开,分开共6或7个域,每一个域代表一个含义。cron表达式语法[秒][分…

    2022年4月18日
    37
  • 第五章:redis持久化,包括rdb和aof两种方式[通俗易懂]

    第五章:redis持久化,包括rdb和aof两种方式[通俗易懂]第五章:redis持久化,包括rdb和aof两种方式

    2022年4月23日
    56
  • mac navicat prenium 15.0.29 激活码[免费获取]

    (mac navicat prenium 15.0.29 激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月21日
    89
  • Java桌面程序打包成exe可执行文件

    Java桌面程序打包成exe可执行文件

    2021年8月29日
    45
  • vue.js与jquery的区别_说出两者之间的区别

    vue.js与jquery的区别_说出两者之间的区别jQuery:曾经是前端最流行的js库。Vue:是一个兴起的js库,是一个精简的MVVM。从技术角度讲。Vue.js专注于MVVM模型的ViewModel层,它通过双向数据绑定把view和Model层连接起来,通过对数据的操作完成对页面视图的渲染。二者的区别是:一、Vue和jQuery对比jquery是使用选择器()选取DOM对象,对其进行赋值、取值、事件绑定等操作,和原生的HTML的区别只在于可以更方便的选取和操作DOM对象,而数据和界面是在一起的。二、Vue则是通过Vue对.

    2022年10月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号