在字符串中查找模式并将其替换为简单形式
Find patterns in a string and replace it with simple form
我有一个字符串
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
乍一看好像挺简单的,但是想不通。
使用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':', 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
你可以用 re.sub()
来做到这一点。
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':', 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
我有一个字符串
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
乍一看好像挺简单的,但是想不通。
使用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':', 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
你可以用 re.sub()
来做到这一点。
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':', 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