dans mon programme C#, j'ai une expression régulière textparser, qui trouve toutes les occurrences de mots qui sont entourés par des crochets doubles. Par exemple, [[n'importe quoi]] trouverait le mot n'importe quoi. Dans un deuxième temps, je veux compter combien de fois le mot trouvé (dans mon exemple: n'importe quoi) apparaît dans le texte entier. Pour ce faire, j'essaie de créer un RE qui contient le mot trouvé et compte, combien de matches je reçois. Le problème est que le mot trouvé peut également contenir des caractères spéciaux et l'expression rationnelle suivante:Trouver un littéral avec une expression régulière
string foundWord = "(anything";
Regex countOccurences = new Regex(foundWord);
va évidemment échouer lorsque la variable contient des caractères spéciaux comme « (» Expresso suggère pour ensemble des expressions correspondant à la construction suivante:.
Regex countOccurences = new Regex("(?(" + foundWord + ")Yes|No)");
mais quand dans ce scénario foundWord est un nombre, comme « 2009 », le RE essaie de l'interpréter comme une référence à un groupe (qui est évidemment pas défini). dans mon texte, il peut y avoir une combinaison des caractères normaux, des caractères spéciaux, des chiffres, etc.
Comment puis-je dire au RE d'interpréter la chaîne donnée comme une expression littérale uniquement?
Merci à l'avance, Frank
Eh bien, parfois c'est tellement facile. Merci de me l'avoir signalé! – Aaginor