使用Python处理复杂字符串的必杀技-re.sub()的妙用

给定一个包含数字且长度与格式位置皆固定的字符串,如'B83C72D1D8E67',现在的需求是,删除给定字符串里的任何一个单个字符为数字的字符串,其余"连续2个数字"则作为1组数字,并判断该组数字是否>=50,若符合条件返回50,否则为0。

对比原字符串,并根据上述规则来修改,预期输出应是"B50C50DDE50"。

如果使用传统的for循环来写,其实还挺费脑子的,光是if语句就嵌套了3层,下图是使用for循环写出来的代码,虽然结果符合预期的输出,但挺麻烦:


类似这种字符串处理的最优解法是re模块里的sub(),即"正则表达式替换"法,非常非常的方便好用,只需提取符合正则表达式'\d{1,2}'的字符串,再替换成自定义函数的返回值即可,请见下图优化后的代码:


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容