首页 > 解决方案 > 正则表达式匹配逗号或字符串

问题描述

我想将字符匹配到第一个逗号或 Esq 之后。

Mr. Bob Smith, Esq., Fish Bowl Lane
Mr. Bob Smith, Fish Bowl Lane

我无法弄清楚如何提前产生预期的效果。

[^,]*

我希望收到

Mr. Bob Smith, Esq.

Mr. Bob Smith

分别。

标签: regexregex-lookarounds

解决方案


似乎您想获取从字符串开头到第一个逗号的子字符串,以及Esq.后面的可选子字符串:

^[^,]+(?:,\s*Esq\.)?

查看正则表达式演示

细节

  • ^- 字符串的开头
  • [^,]+- 一个或多个字符,
  • (?:,\s*Esq\.)?- 一个可选的非捕获组(?:如果您的正则表达式引擎不支持非捕获组并且只支持捕获组,则删除)匹配 1 或 0 个出现
    • ,- 一个逗号
    • \s*- 0 个或更多空白字符
    • Esq\.- 文字Esq.子串。

推荐阅读