正则表达式匹配逗号或字符串

时间:2019-02-04 18:39:42

标签: regex regex-lookarounds

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

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

我不知道如何提前产生想要的效果。

[^,]*

我希望收到

Mr. Bob Smith, Esq.

Mr. Bob Smith

分别。

1 个答案:

答案 0 :(得分:5)

似乎您希望从字符串的开头到第一个逗号都得到一个子字符串,并在其后得到一个可选的Esq.子字符串:

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

请参见regex demo

详细信息

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