J'ai une regex qui analyse un morceau de texte pour une liste de mots-clés définis dans un db. Je crée dynamiquement mon regex du db pour obtenir ceci:Problème Regex avec des caractères réservés dans C#
\b(?:keywords|from|database|with|esc\@ped|characters|\@ss|gr\@ss)\b
Notez que les caractères spéciaux sont échappés. Cela fonctionne pour la grande majorité des cas, SAUF si le premier caractère du mot-clé est un caractère spécial regex comme @ ou $. Donc, dans l'exemple ci-dessus, @ss ne sera pas reconnu, mais gr @ ss et esc @ ped le feront.
Des idées pour faire fonctionner cette regex pour ces cas spéciaux? J'ai essayé à la fois avec et sans échapper les caractères spéciaux dans la chaîne regex, mais en vain.
Merci à l'avance,
David
@ est un caractère spécial regex? – Amarghosh
Vous pourriez vouloir échapper à la barre oblique inverse en premier lieu: quelque chose comme '\\ +' – Amarghosh
Bon point - @ n'est pas un caractère spécial regex. Toujours coincé cependant! Double-échapper ne fonctionne pas non plus, semble-t-il. D'autres idées? –