Python处理Excel账号掩码时,如何排除以INC开头的字符串?
解决Excel中6位/9位账号掩码但排除INC开头字符串的问题
要解决这个问题,核心是用正则表达式的负向预查规则排除以INC开头的字符串,只对其他场景下的6位、9位数字进行掩码替换。
直接修改你的代码如下:
df = df.replace( {r'(?!^INC)\b(\d{6}|\d{9})\b': lambda m: '*' * len(m.group())}, regex=True )
代码说明:
(?!^INC):负向预查规则,确保当前匹配的数字所在字符串不是以INC开头,直接跳过INCxxxxxx这类事件编号\b:单词边界,避免匹配更长数字中的片段(比如1234567里的前6位)(\d{6}|\d{9}):同时匹配6位和9位数字lambda m: '*' * len(m.group()):根据匹配到的数字长度生成对应数量的星号,6位替换为******,9位替换为*********
效果验证:
- 单独账号
123456→****** - 单独账号
123456789→********* - 事件编号
INC098765→ 保持原内容不变 - 嵌入文本的账号
用户账号:987654→用户账号:******
内容的提问来源于stack exchange,提问作者Vinothkumar Nedunchezhian
相关产品推荐
相关产品推荐

