Python 如何将字符串分开两次?
我想同时删除分号、括号和破折号。如何使用Python 如何将字符串分开两次?,python,Python,我想同时删除分号、括号和破折号。如何使用split()? 例如,将(发货id[s]-ef234;发送方[s]-Taiwan Electronics Co)转换为[“发货id[s],“ef234”,“发送方[s],“Taiwan Electronics Co]”如果项目中已经包含类似“JB HI-FI”的破折号,该怎么办。如何使用它?使用regex实现这一点非常简单 import re pattern = r'[-|;]' string = 'shipment_id[s]-ef234;sende
split()
?
例如,将(发货id[s]-ef234;发送方[s]-Taiwan Electronics Co)转换为
[“发货id[s],“ef234”,“发送方[s],“Taiwan Electronics Co]”
如果项目中已经包含类似“JB HI-FI”的破折号,该怎么办。如何使用它?使用regex
实现这一点非常简单
import re
pattern = r'[-|;]'
string = 'shipment_id[s]-ef234;sender[s]-Taiwan Electronics Co'
re.split(pattern, string)
#['shipment_id[s]', 'ef234', 'sender[s]', 'Taiwan Electronics Co']
如果包含()
,我们可以简单地将它们添加到模式中,并通过列表理解将其传递给只包含True
的值
string = '(shipment_id[s]-ef234;sender[s]-Taiwan Electronics Co)'
pattern = r'[-|;|\(|\)]'
print([match for match in re.split(pattern, string) if match])
#['shipment_id[s]', 'ef234', 'sender[s]', 'Taiwan Electronics Co']
如果按照问题的要求保留开头和结尾的
(
和)
,您将有额外的工作,因为它将创建空字符串。如果这确实是一个很大的问题,简单的列表理解可以删除空字符串。或者在进行拆分之前,只需使用strip
删除括号即可。添加到()
@MarkI想知道re.findall(r'[^;()-]+',s)
或类似项是否会更简单。如果包含“JB HI-FI”等破折号的项会怎样。怎么办?