我的第一个字符串
<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
答案 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