在字符串中查找模式并用简单形式替换它

2024-09-30 01:35:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一根绳子

str1 = (((un5:0,(un7:0,un8:0):15:0):9,(un4:0,un10:0):10:0):5,((un6:0,un1:0):10:0,(un3:0,un9:0,un2:0):14:0):12:0):7):0

在字符串中,有特定的模式“:number:number”( ex) :15:0, :10:0 )

我想把它们做成这样

:15:0 -> :15

:10:0 -> :10
.
.
.

因此,最终输出将是

str1 = (((un5:0,(un7:0,un8:0):15):9,(un4:0,un10:0):10):5,((un6:0,un1:0):10,(un3:0,un9:0,un2:0):14):12):7):0

起初看起来很简单,但我想不出来


Tags: 字符串number模式绳子str1un2un1un7
2条回答

使用re.sub我们可以尝试:

str1 = "(((un5:0,(un7:0,un8:0):15:0):9,(un4:0,un10:0):10:0):5,((un6:0,un1:0):10:0,(un3:0,un9:0,un2:0):14:0):12:0):7):0"
output = re.sub(r':(\d+):\d+', r':\1', str1)
print(output)

这张照片是:

(((un5:0,(un7:0,un8:0):15):9,(un4:0,un10:0):10):5,((un6:0,un1:0):10,(un3:0,un9:0,un2:0):14):12):7):0

你可以用^{}来做

import re

s = '(((un5:0,(un7:0,un8:0):15:0):9,(un4:0,un10:0):10:0):5,((un6:0,un1:0):10:0,(un3:0,un9:0,un2:0):14:0):12:0):7):0'
new_s = re.sub(r':((\d+):0)',r':\2', s)
print(new_s)
(((un5:0,(un7:0,un8:0):15):9,(un4:0,un10:0):10):5,((un6:0,un1:0):10,(un3:0,un9:0,un2:0):14):12):7):0

相关问题 更多 >

    热门问题