当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- 树莓派鼓捣记 - 设置 wifi
- Exhibition cloud technology interpretation | in the face of emergencies, how does app do a good job in crash analysis and performance monitoring?
- SQL filter query duplicate columns
- 快来学习!个性化推荐系统开发指南(附网盘链接)
- Assign the corresponding key and value in the map to the object
- 函数计算进阶-IP查询工具开发
- Day85: Luffy: shopping cart switching price according to different validity period & shopping cart deletion operation & price settlement & foreplay of order page
- sql 截取数据中 ‘.’的前后数据
- 白山云科技入选2020中国互联网企业百强
- CUDA_ Register and local memory
猜你喜欢

What is the architecture of a live broadcast system worth more than $1 billion?

ES6、ES7、ES8学习指南

《Python Cookbook 3rd》笔记(2.1):使用多个界定符分割字符串

获取List集合对象中某一列属性值

JS label syntax jumps out of multiple loops

实验2

IP地址SSL证书

会展云技术解读 | 面对突发事故,APP 如何做好崩溃分析与性能监控?

Interviewer: what are cache penetration, cache avalanche and cache breakdown?

Youtube订阅——解决在弹窗内使用Youtube订阅按钮高度显示不全的问题
随机推荐
jt-京淘项目
sql 筛选查询重复列
利用尾巴作为时间序列进行处理来识别鲸鱼
Can public IP address and SSL certificate improve SEO?
How much is the cost of CRM system?
Day85: Luffy: shopping cart switching price according to different validity period & shopping cart deletion operation & price settlement & foreplay of order page
《Python Cookbook 3rd》笔记(2.2):字符串开头或结尾匹配
Detach ()
必看!RDS 数据库入门一本通(附网盘链接)
proxy 的不完整polyfill
痞子衡嵌入式:RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计
Python中[:]与[::]的用法
CUDA_寄存器和局部存储器
IP address SSL certificate
js label语法跳出多重循环
Technical point 5: XML language
What is the architecture of a live broadcast system worth more than $1 billion?
Self writing performance testing tool (2)
将Map中对应的key和value赋值到对象中
接缝雕刻算法:一种看似不可能的图像大小调整方法