Python:用'和 - [重复]分割字符串
Posted
技术标签:
【中文标题】Python:用\'和 - [重复]分割字符串【英文标题】:Python : split string by ' and - [duplicate]Python:用'和 - [重复]分割字符串 【发布时间】:2011-08-19 03:50:07 【问题描述】:如何用撇号'
和-
分割字符串?
例如,给定string = "pete - he's a boy"
【问题讨论】:
[item.split("'") for item in string.split('-')]
是我想出的,虽然不是真正的答案......
***.com/questions/1059559/…
你的预期输出是什么?
这项工作:re.split('\W+',string)
使用'\W+'
在这里有效,但总的来说它是错误的。请注意r'\W+'
更健壮,请参阅documentation about string literals
【参考方案1】:
可以使用正则表达式模块的拆分功能:
re.split("['-]", "pete - he's a boy")
【讨论】:
第一个合适的答案,干得好+1 @Jakob Bowyer - 请让 OP 告诉我们什么是“合适的答案”......超越自己? ;) 那行不通,你需要像下面的一个答案一样转义字符=P 它确实有效!我刚刚在 2.6.6 上测试过【参考方案2】:string = "pete - he's a boy"
result = string.replace("'", "-").split("-")
print result
['pete ', ' he', 's a boy']
【讨论】:
这是一个可爱的解决方法。 避免使用正则表达式的任何事情 ;D 工作正常。我想这取决于要拆分的字符串的大小,如果这个更快或 re.split 方法。 它们很有用。适度。 干净高效!!!【参考方案3】:这感觉有点老套,但你可以这样做:
string.replace("-", "'").split("'")
【讨论】:
相当于slightly earlier answer【参考方案4】:这可以在没有正则表达式的情况下完成。对字符串使用 split 方法 ( 并使用列表推导 - 实际上与 @Cédric Julien's earlier answer 相同
第一次在一个拆分器上拆分一次,例如'-' 然后拆分数组的每个元素
l = [x.split("'") for x in "pete - he's a boy".split('-')]
然后扁平化列表
print ( [item for m in l for item in m ] )
给予
['pete ', ' he', 's a boy']
【讨论】:
【参考方案5】:>>> import re
>>> string = "pete - he's a boy"
>>> re.split('[\'\-]', string)
['pete ', ' he', 's a boy']
希望这会有所帮助:)
【讨论】:
首先检查其他人的答案可能是一个想法。 @Uwe 已经提供了合适的 re 表达式。 对不起,我写的时候说还没有人发帖。但无论如何,他们的回答是错误的。 注意我使用双引号作为模式参数,所以不需要引号。 哦,谢谢,现在我学到了一件事:)(双引号)【参考方案6】:import re
string = "pete - he's a boy"
print re.findall("[^'-]+",string)
结果
['pete ', ' he', 's a boy']
.
如果您不希望在拆分后的每个项目之前或之后没有空白:
import re
string = "pete - he's a boy"
print re.findall("[^'-]+",string)
print re.findall("(?! )[^'-]+(?<! )",string)
结果
['pete', 'he', 's a boy']
【讨论】:
以上是关于Python:用'和 - [重复]分割字符串的主要内容,如果未能解决你的问题,请参考以下文章
Java正则表达式用逗号分割字符串,但忽略引号和括号[重复]
[Python图像处理] 四十.全网首发Python图像分割万字详解(阈值分割边缘分割纹理分割分水岭算法K-Means分割漫水填充分割区域定位)