regex - 正则表达式匹配逗号或字符串
问题描述
我想将字符匹配到第一个逗号或 Esq 之后。
Mr. Bob Smith, Esq., Fish Bowl Lane
Mr. Bob Smith, Fish Bowl Lane
我无法弄清楚如何提前产生预期的效果。
[^,]*
我希望收到
Mr. Bob Smith, Esq.
和
Mr. Bob Smith
分别。
解决方案
似乎您想获取从字符串开头到第一个逗号的子字符串,以及Esq.
后面的可选子字符串:
^[^,]+(?:,\s*Esq\.)?
查看正则表达式演示
细节
^
- 字符串的开头[^,]+
- 一个或多个字符,
(?:,\s*Esq\.)?
- 一个可选的非捕获组(?:
如果您的正则表达式引擎不支持非捕获组并且只支持捕获组,则删除)匹配 1 或 0 个出现,
- 一个逗号\s*
- 0 个或更多空白字符Esq\.
- 文字Esq.
子串。
推荐阅读
- typescript - 是否可以从 docker-compose 运行命令 npm test?
- wiremock - 使用wiremock时异步测试的ConditionTimeout
- spring-boot - 无法将“server.port”下的属性绑定到 java.lang.Integer
- google-apps-script - 由于错误 401,无法再运行脚本:deleted_client OAuth 客户端已删除
- javascript - React: mapStateToProps - 我如何获得状态?
- android - 如何在 Volley 中处理来自 API 的 HTML 响应
- sql - SQL - 在一周内获取该周记录的结果计数以及从该周开始老化 7 天的记录计数
- python - How do you count the sum of all values in an array up until a point?
- powershell - 通过 Powershell 中的剪贴板复制和粘贴文件
- ruby-on-rails - 升级到 Rails 6.1 后的 Rails 路线问题