regex - 如何使用正则表达式修剪行尾的现有空格?
问题描述
再会!我是新手,正在探索正则表达式。我目前正在分析数据并排除我们系统中的脏数据。现在,我很难删除尾随空格,我不知道应该使用什么内置函数来消除它。如果我放 \h 它不会捕获空间,但如果我使用 \s 它会捕获空间但它在行尾有尾随空格。
这是我在 regexp.com 上测试的正则表达式
\b((\d{1,}[\s|\-]+){1,3}\d{1})\b
我想捕获的格式是:
Format1- ####-#######-#
Format2- #### ####### #
Format3- ##-#######-#
Format4- ## ####### #
Format5- ########## ({10,12} digits)
解决方案
如果要匹配这些格式,可以匹配 2 位或 4 位数字。捕获匹配空格或-
组中的内容,并使用对该组中捕获的内容的反向引用以保持分隔符相同(因此不匹配空格且-
格式相同)
请注意,\s
也可以匹配换行符。如果您只想匹配空格,则可以添加它。
\b(?:(?:\d{4}|\d{2})([- ])\d{7}\1\d|\d{10,12})\b
在零件
\b
字边界(?:
非捕获组(?:\d{4}|\d{2})
匹配 4 位或 2 位数字([- ])
捕获组 1,匹配其中一个-
或空格(用于\s
匹配空白字符)\d{7}\1\d
匹配 7 个数字,反向引用第 1 组(匹配与前一个相同的字符),后跟最后一个数字|
或者\d{10,12}
匹配 10 - 12 位数字
)
关闭组\b
字边界
推荐阅读
- gradle - 如何从 Gradle 中的私有 Gitlab Maven 项目注册表存储库声明依赖项?
- java - 不使用 Docker 命令将文件从主机复制到 Docker 容器
- asp.net-mvc - ASP MVC - “个人帐户身份验证”项目数据库存储在哪里?
- webhooks - Zapier WebHook 从 CloudCMA 获取信息
- python - 如何根据两列在熊猫数据框中自定义排序?
- javascript - 如何在非单页面中的页面Vue之间共享数据
- sql - 如何根据给定条件选择不同的记录?
- html - 如何将循环功能的结果打印到网页同时不停止我的后台循环?
- java - 数组列表