python - 看不懂带数字去掉单词的代码
问题描述
我想删除带数字的单词。经过研究,我明白了
s = "ABCD abcd AB55 55CD A55D 5555"
>>> re.sub("\S*\d\S*", "", s).strip()
这段代码可以解决我的情况
但是,我无法理解这段代码是如何工作的。我知道正则表达式,我知道单独 \d 识别所有数字 [0-9]。\S 用于空格。并且 * 是其左侧模式的 0 次或多次出现
"\S*\d\S*"
这部分我无法理解
但我不确定我是否理解此代码如何识别 AB55。
谁能给我解释一下?谢谢
解决方案
这将用空字符串“”周围的任何非空格符号替换数字
AB55 被视为:AB are \S*, 5 is \d, 5 is \S
*
55CD:empty string is \S*, 5 is \d, 5CD is \S*
A55D:A is \S*, 5 is \d, 5D is \S*
5555:empty string is \S*, 5 is \d, 555 is \S*
将re.sub("\S*\d\S*", "", s)
所有这些子字符串替换为空字符串 "" 和 .strip() 是无用的,因为它删除了前一个结果开头和结尾的空格
推荐阅读
- node.js - How to attach process using Instruments on macOS Catalina?
- python - 从数据框迭代插入
- django - get_object 返回的 Django 上下文
- python - 询问用户是否想再次播放 - 当我输入“n”时代码会重复
- excel - VBA 循环遍历文件路径并运行代码
- amazon-web-services - AWS Elastic BeanStalk 更新环境无限期更新我的环境
- c++ - 类中向量的 C++ 重载运算符
- pdf - jsPDF + html2canvas 仅打印屏幕内容(将可滚动内容保留为空白)
- python - 如何使用时间戳间隔条件加速 python 循环
- angular - Ionic 4 angular data.map 不是函数