如何用Python正则匹配Word文档中DOC-后接9位数字的ID字符串
错误原因排查
你之前的正则匹配失败有两个核心问题:
- 符号匹配错误:目标ID以
DOC-开头,但你写的正则是DOC\.,把短横线误写为英文点,完全不匹配目标前缀 - 行定位符误用:加
^、$的版本要求ID必须单独占一整行,只要ID前后有其他文本就会匹配失败,无特殊需求无需添加这两个标记
正确实现代码
推荐优先使用加单词边界的版本,避免匹配到嵌入在其他字符串中的不符合规则的内容:
import re # 基础版本:匹配所有DOC-后接9位数字的内容 # pattern = re.compile(r'DOC-\d{9}') # 精确版本:加单词边界,确保ID是独立的字符段,不会匹配到类似XXDOC-123456789的内容 pattern = re.compile(r'\bDOC-\d{9}\b') result = pattern.findall(document)
写法说明:正则前加
r前缀是将字符串标记为原始字符串,避免Python对反斜杠做额外转义,是正则书写的最佳实践。
内容的提问来源于stack exchange,提问作者Enterrador99
相关产品推荐
相关产品推荐

