python - 正则表达式查找和删除 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
被删除。
我可以做些什么来修改我现有的正则表达式,或者如何创建一个新的正则表达式来完成这些任务?
解决方案
所以基本上我想删除长度超过 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 个或多个空格
推荐阅读
- javascript - 如何使用列表访问嵌套 json 中的数据?
- d3.js - 更改折线图中线条的颜色 vegalite
- c# - 简单发布并获取 C# WPF
- protocol-buffers - 编码和解码协议缓冲区任何类型的消息
- java - Spring如何处理需要参数的字段上的@Autowired?在这种情况下,JdbcTemplate 与 DataSource
- react-native - Detox - 应用程序卡在 iOS 的启动屏幕中
- django - 如何在 Django/Wagtail 中访问多对多关系的“另一面”?
- node.js - 使用 AXIOS 发送大块 POST 请求时是否可以检测到立即数
- linux - 尝试从 /etc/passwords 中过滤掉用户,然后将它们添加到一些文本中,然后这些文本将转到输出文件
- java - 如何强制我的 JVM 进程始终占用 x GB 内存?