首页 > 解决方案 > 正则表达式查找和删除 ABC 或 ABC 的缩写

问题描述

在我的数据中,有很多像IIT-JEE, AIPMT, C.B.S.E.. 所以我来到一个正则表达式,通过使用(?<!\w)([A-Za-z])\.. 它正在删除C.B.S.E. 它也在删除x.y这是有用等式的一部分。

所以基本上我想删除长度超过 2 的缩写,以便保留小写 x.y但删除大写 X.Y.Z.。另外我想删除任何大写且长度> = 3的单词。例如abc被保留但IIT被删除。

我可以做些什么来修改我现有的正则表达式,或者如何创建一个新的正则表达式来完成这些任务?

标签: pythonregex

解决方案


所以基本上我想删除长度超过 2 的缩写,以便x.y保留小写但删除大写X.Y.Z.。此外,我想删除任何大写且属于length>=3. 例如abc被保留但IIT被删除。

你可以试试这个正则表达式:

\b(?:[A-Z]{3,}\b|(?:[A-Za-z]\.){2,})\s*

正则表达式演示

正则表达式详细信息:

  • \b: 字边界
  • (?:: 启动非捕获组
    • [A-Z]{3,}\b: 匹配3+大写字母的单词
    • |: 或者
    • (?:[A-Za-z]\.){2,}: 匹配字母的缩写,后跟最小长度为 2 的点
  • ): 非捕获组
  • \s*: 匹配 0 个或多个空格

推荐阅读