python - 如何在 Python 中使用正则表达式拆分它
问题描述
我有这种类型的字符串
"Cat/Wheat , Com, Ogl/oyher Face Express/Star,"
我想变成这样
["Cat,Wheat,Com,Ogl,oyher,Face,Express,Star"]
基本上在“,”和“/”处分开
我尝试使用 split 函数,但为此我不得不使用双 forloop 效率不高
我做了一些研究并遇到了正则表达式
re.split('\W+',string , 1)
但这不起作用,我应该在过滤器中添加什么
解决方案
目前尚不清楚为什么1
要向您的split()
- 添加 maxsplit 参数,这会阻止它拆分您想要的所有内容。
没有它你会得到:
> import re
> s = "Cat/Wheat , Com, Ogl/oyher Face Express/Star,"
> re.split(r'\W+', s)
['Cat', 'Wheat', 'Com', 'Ogl', 'oyher', 'Face', 'Express', 'Star', '']
对于最后的灵魂破碎的空虚来说,这非常接近预期。您可以将其过滤掉,但您可能更乐意re.findall()
匹配您想要的而不是拆分您不想要的:
> import re
> s = "Cat/Wheat , Com, Ogl/oyher Face Express/Star,"
> re.findall(r'\w+', s)
['Cat', 'Wheat', 'Com', 'Ogl', 'oyher', 'Face', 'Express', 'Star']
要获得单个逗号分隔的字符串(如果这是您想要的),您可以加入:
> import re
> s = "Cat/Wheat , Com, Ogl/oyher Face Express/Star,"
> ",".join(re.findall(r'\w+', s))
'Cat,Wheat,Com,Ogl,oyher,Face,Express,Star'
推荐阅读
- algorithm - 在格子上随机布局对象的算法
- list - 有条件地附加到 Elixir 中的列表?
- c++ - mkoctfile 找不到包含 c++ 库头文件
- javascript - 尝试将 MERN 应用程序部署到 heroku 时出现错误
- module - 为什么我的主管使用 undef 在 start_child 上失败?
- java - 如何在 datepickerimpl 中禁用明天之前的日期?
- html - 为什么我可以使用百分比设置绝对定位元素的尺寸,即使它的父元素没有任何设置尺寸?
- java - 每天触发多个通知
- javascript - 迭代中的javascript typeof索引?
- laravel - Laravel 急切加载查询,其中 0 = 1