首页 > 解决方案 > 一年后匹配点并将其删除

问题描述

我正在寻找一个正则表达式来删除字符串中一年后的所有点。

我知道我可以使用目标年份和年份间隔

\s*\d{4}(?:\s*-\s*\d{4})?

但是我如何只捕获点?

例如,如果我有“ABCD 2009. DEF”,我想获得“ABCD 2009 DEF”

标签: pythonregex

解决方案


您可以使用捕获组包装您拥有的模式并在\.+其后添加(以匹配一个或多个点)并替换为\1(将年份放回结果字符串中):

re.sub(r'(\s*\d{4}(?:\s*-\s*\d{4})?)\.+', r'\1', s)

请参阅正则表达式演示


推荐阅读