|
这个例子,首先分析转换前和转换后两个字符的特点
文中给出的要转换的字符为 "!5568!!8868!_NWe"
转换后的字符为" \u5568\u8868_NWe"
两个数据的特点可以分析出,其实题意是想把"!5568!"、"!8868!"这两个字符分别转换成"\u5568\" 、"\u8868"。字符中数值不变,只是改变了输出方式。因为并不是简单的用"!"分割,因此并不能简单地使用slip()方法分隔
那么就可以把"!5568!"中的左右的"!"看作是左括号和右括号,如下:
def strConvert(e):
idx_num_ls = []
rplc_str_ls = []
for i in range(len(e)):
if e[i]=="!":
idx_num_ls.append(i)
else:
pass
if len(idx_num_ls) == 2:
idx1 = idx_num_ls[0]
idx2 = idx_num_ls[1]
rplc_str_ls.append(e[idx1:idx2+1])
idx_num_ls.clear()
for rplc_str in rplc_str_ls:
new_rplc_str = rplc_str[0:-1].replace("!",r"\u")
result = e = e.replace(rplc_str,new_rplc_str)
return result
strr = "!5568!!5569!_Neg"
strr2 = strConvert(strr)
print(strr2)
不知道是否符合楼主想要的内容 |
|