Limite de palavras Javascript Regex com caracteres opcionais que não são palavras
Estou procurando encontrar uma correspondência de palavra-chave em uma string. Estou tentando usar o limite de palavras, mas esse pode não ser o melhor caso para essa solução. A palavra-chave pode ser qualquer palavra e pode ser precedida por um caractere que não seja da palavra. A string pode ser qualquer string e pode incluir todas as três palavras na matriz, mas devo corresponder apenas à palavra-chave:
['hello', '#hello', '@hello'];
Aqui está o meu código, que inclui uma tentativa encontrada empostar:
let userStr = 'why hello there, or should I say #hello there?';
let keyword = '#hello';
let re = new RegExp(`/(#\b${userStr})\b/`);
re.exec(keyword);
Isso seria ótimo se a string sempre começasse com #, mas não.Então eu tentei isso/(#?\b${userStr})\b/
, mas se a sequência começar com#
, tenta combinar##hello
.omatchThis
str pode ser qualquer um dos 3 exemplos na matriz, e o userStr pode conter várias variações domatchThis
mas apenas um será exato