Python如何仅替换独立单词‘z’而非其作为子字符串的实例?
问题描述
我需要一个Python表达式,将以下代码文本:
z= 10 zi = 300 print(z) print(z * 180) print(z - 3241) y=z print(type(z)) print(type(y)) print(type(z[0])) print(type(z[1]))
转换为:
K= 10 zi = 300 print(K) print(K * 180) print(K - 3241) y=K print(type(K)) print(type(y)) print(type(K[0])) print(type(K[1]))
我曾尝试使用:newdata = filedata.replace("z", "K"),但该语句会替换所有‘z’的实例,而我仅想替换仅由‘z’组成的独立单词。
解决方案
别担心,你可以用Python的re模块来搞定这个精准替换的需求——它能帮你只替换独立的单词z,不会碰zi里的z。具体代码如下:
import re filedata = "z= 10 zi = 300 print(z) print(z * 180) print(z - 3241) y=z print(type(z)) print(type(y)) print(type(z[0])) print(type(z[1]))" newdata = re.sub(r'\bz\b', 'K', filedata) print(newdata)
为啥这么做?
\b是正则里的单词边界,它会匹配一个单词的开头或结束位置,这样就能确保我们只抓那些单独的z,不会把zi里的z当成目标替换掉。re.sub()函数就是专门用来做正则替换的,把匹配到的独立z全换成K就行。
运行这段代码后,你就能得到想要的结果啦,zi会原封不动,只有独立的z被替换成K。
内容的提问来源于stack exchange,提问作者jason
相关产品推荐
相关产品推荐

