Python正则表达式:匹配字符串中以数字字符开头的后缀内容
Python正则提取解决方案
你之前使用的[^a-zA-z]规则是匹配所有非字母字符,会把前缀中的短横线也匹配保留,无法直接得到目标结果。
推荐正则方案
通用场景(不依赖前缀格式)
使用正则r'\d[\d.-]+$'即可精准提取每行末尾的目标内容,规则解释:
\d:匹配目标内容开头的数字[\d.-]+:匹配后续至少1个由数字、点、短横线组成的字符$:锚定到行尾,确保仅取每行末尾的符合规则的片段
Python代码示例
import re # 输入字符串 raw_text = """abc-preview-check-random-post-5.500.510-5009 abc-preview-check-random-post-2.15.510-50098709""" # 逐行匹配提取 results = re.findall(r'\d[\d.-]+$', raw_text, flags=re.MULTILINE) # 打印结果 for res in results: print(res)
运行后输出:
5.500.510-5009 2.15.510-50098709
固定前缀场景(匹配更精准)
如果确认所有行的前缀固定为abc-preview-check-random-post-,可以使用断言规则r'(?<=abc-preview-check-random-post-)\S+',完全避免误匹配。
内容的提问来源于stack exchange,提问作者Chel MS
相关产品推荐
相关产品推荐

