C# регулярное выражение, чтобы найти все термины, начинающиеся с @, но игнорируя термины с пробелами - PullRequest
0 голосов
/ 29 марта 2020

У меня есть текст, который может содержать термины, начинающиеся с @, мне нужно извлечь только те термины, которые являются целым словом, а не термины с пробелами. @Terms всегда будет появляться перед action:

пример: command @abc @xyz @abc xyz action: Hello world

Вывод должен быть: ab c, xyz

Это то, что я был я работаю с ним, но у меня возникают трудности с его расширением.

(?<!\w)@.*?\s

Вывод, который я получаю при этом, следующий (окрашен в серый цвет)

команда @abc @xyz @abc xyz action: hello world

1 Ответ

2 голосов
/ 29 марта 2020

Необходимо разрешить сопоставление, только если за @xxx следует другой @xxx или action:. Вы можете сделать это с помощью этого регулярного выражения, которое использует положительный прогноз для следующих двух условий:

(?<!\w)@\S+(?=\s+(?:@|action:))

Демонстрация по регулярному выражению regex101

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...