如何在 Python 中使用多个分隔符分割字符串?

时间:2021-04-09 04:21:18

标签: python regex

我的第一个字符串

<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level  -%l %c - %msg%n" />

但我想在下面这样的结果

xxx.xxx.com-bonding_err_bond0-if_eth2-d.rrd.csv

我尝试了一些代码,但似乎无法正常工作

bonding_err_bond0-if_eth2

但我得到的结果是 com-bonding_err_bond0-if_eth2-d 但我的目的是 bonding_err_bond0-if_eth2

3 个答案:

答案 0 :(得分:2)

如果你被允许使用正则表达式之外的解决方案, 如果您不知道 join,您可以将解决方案分解成更小的部分以更好地理解和了解它。它会派上用场。

solution= '-'.join(csv.split('.', 4)[2].split('-')[1:3])

谢谢, 沙尚克

答案 1 :(得分:1)

您可以只用 - 分隔字符串,删除开头和结尾,然后将它们重新连接成一个字符串。

csv = "xxx.xxx.com-bonding_err_bond0-if_eth2-d.rrd.csv"

x = '-'.join(csv.split('-')[1:-1])

输出

>>> csv
>>> bonding_err_bond0-if_eth2

答案 2 :(得分:1)

可能你得到了答案,但如果你想要一个用于任何字符串数据的通用方法,你可以这样做:

这样你就不会被限制为一个字符串,你也可以循环数据。

csv = "xxx.xxx.com-bonding_err_bond0-if_eth2-d.rrd.csv"

first_index = csv.find("-")
second_index = csv.find("-d")

result = csv[first_index+1:second_index]
print(result)
# OUTPUT:
# bonding_err_bond0-if_eth2