当前位置:网站首页>Python cookbook 3rd note (2.1): using multiple qualifiers to split strings
Python cookbook 3rd note (2.1): using multiple qualifiers to split strings
2020-11-09 23:53:00 【Giant ship】
Use multiple qualifiers to split strings
problem
You need to split a string into multiple fields , But the separator ( And the space around it ) It's not fixed .
solution
string Object's split() Method is only suitable for very simple string segmentation , It doesn't allow multiple separators or indefinite spaces around them . When you need to cut strings more flexibly , Best use re.split() Method :
>>> line = 'asdf fjdk; afed, fjek,asdf, foo'
>>> import re
>>> re.split(r'[;,\s]\s*', line)
['asdf', 'fjdk', 'afed', 'fjek', 'asdf', 'foo']
Discuss
function re.split() It's very practical , Because it allows you to specify multiple regular patterns for the separator . such as , In the example above , The separator can be a comma , Semicolons or spaces , And it's followed by any space . As long as the pattern is found , The entities on either side of the matching separator are returned as elements in the result . The return result is a list of fields , This heel str.split() The return value type is the same .
When you use re.split() Function time , It is important to note whether the regular expression contains a bracket to capture the group . If capture packets are used , Then the matched text will also appear in the result list . such as , Take a look at the results of this code run :
>>> fields = re.split(r'(;j,j\s)\s*', line)
>>> fields
['asdf', ' ', 'fjdk', ';', 'afed', ',', 'fjek', ',', 'asdf', ',', 'foo']
>>>
Getting split characters is also useful in some cases . such as , You may want to keep the split string , Used to reconstruct a new output string later :
>>> 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'
>>>
If you don't want to keep the split string in the result list , But if you still need to use parentheses to group regular expressions , Make sure your group is a non capture group , Form like (?:...) . such as :
>>> re.split(r'(?:,j;j\s)\s*', line)
['asdf', 'fjdk', 'afed', 'fjek', 'asdf', 'foo']
>>>
版权声明
本文为[Giant ship]所创,转载请带上原文链接,感谢
边栏推荐
- Validation failed for one or more entities. See ‘EntityValidationErrors’解决方法
- What is the architecture of a live broadcast system worth more than $1 billion?
- Win7 + vs2015 + cuda10.2 configuration tensorrt7.0
- Top 5 Chinese cloud manufacturers in 2018: Alibaba cloud, Tencent cloud, AWS, telecom, Unicom
- 编码风格:Mvc模式下SSM环境,代码分层管理
- mongodb内核源码实现、性能调优、最佳运维实践系列-command命令处理模块源码实现一
- 消防知识线上答题活动小程序复盘
- 表单验证,为避免全局污染,少定义全局变量写法
- Fear of reconstruction? I'm too late to tell you how to refactor. Now I'm here
- Visit 2020 PG Technology Conference
猜你喜欢
CUDA_ Shared memory, memory access mechanism, access optimization
编码风格:Mvc模式下SSM环境,代码分层管理
SRM系统是什么系统?SRM供应商管理系统功能
解决Coursera视频无法观看的三种方法(亲测有效)
So what should investors do with the current market? Now a new investment outlet is coming!
Validation failed for one or more entities. See ‘EntityValidationErrors’解决方法
将Map中对应的key和value赋值到对象中
JT Jingtao project
必看!RDS 数据库入门一本通(附网盘链接)
Using tail as time series to identify whales
随机推荐
接缝雕刻算法:一种看似不可能的图像大小调整方法
JT Jingtao project
What is the architecture of a live broadcast system worth more than $1 billion?
[leetcode] 92 integer inversion
获取List集合对象中某一列属性值
Technical point 5: XML language
Coding style: SSM environment in MVC mode, code hierarchical management
Fear of reconstruction? I'm too late to tell you how to refactor. Now I'm here
Promote China manufacturing upgrade, 3D visualization of production line in automobile assembly workshop
初级工程师如何在职场生存
Python提示AttributeError 或者DeprecationWarning: This module was deprecated解决方法
CUDA_共享内存、访存机制、访问优化
No space left on device
Simple use of JMeter
DB engines database ranking in November: PostgreSQL holds the top spot in the same period
Raspberry pie drum set WiFi
函数计算进阶-IP查询工具开发
利用尾巴作为时间序列进行处理来识别鲸鱼
2020-11-09:谈谈布隆过滤器和布谷鸟过滤器的相同点和不同点?
消防知识线上答题活动小程序复盘