Регулярное выражение до запятой или строки - PullRequest
0 голосов
/ 04 февраля 2019

Я бы хотел сопоставить символы до первой запятой или после эсквайра.

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

Я не мог понять, как смотреть вперед, чтобы получить желаемый эффект.

[^,]*

Я ожидаю получить

Mr. Bob Smith, Esq.

и

Mr. Bob Smith

соответственно.

1 Ответ

0 голосов
/ 04 февраля 2019

Кажется, вы хотите получить подстроку от начала строки до первой запятой и необязательную подстроку Esq. после нее:

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

См. Демонстрационный пример regex

Подробности

  • ^ - начало строки
  • [^,]+ - один или несколько символов, отличных от ,
  • (?:,\s*Esq\.)? - необязательная группа без захвата (удалите ?:, если ваш механизм регулярных выражений не поддерживает группы без захвата и поддерживает только группы захвата), которая соответствует 1 или 0 вхождениям
    • , - запятая
    • \s* - 0 или более пробельных символов
    • Esq\. - буквальная Esq. подстрока.
...