То есть Алиса должна соответствовать, но Боб не должен в следующем
Hello @alice and [@bob](...)
Я могу сопоставить сами имена со следующим простым регулярным выражением: /\@([\w]+)/
,
Кто-нибудь знает, как заставить регулярное выражение не соответствовать Бобу?
Индекс группы 1 содержит символы, которые вы хотите.
Используйте отрицательный ответ.
@(?![^\[\]]*])(\w+)
ИЛИ ЖЕ
Через изменение,
\[.*?\]|@(\w+)
ИЛИ ЖЕ
Через глагол PCRE (*SKIP)(*F)
\[.*?\](*SKIP)(*F)|@(\w+)
Других решений пока нет …