je la méthode suivante dans un code de nemerle:erreur de syntaxe dans l'expression régulière pour correspondre lien url
private static getLinks(text : string) : array[string] {
def linkrx = Regex(@"<a\shref=['|\"](.*?)['|\"].*?>");
def m = linkrx.Matches(text);
mutable txmatches : array[string];
for (mutable i = 0; i < m.Count; ++i) {
txmatches[i] = m[i].Value;
}
txmatches
}
le problème est que le compilateur pour une raison quelconque tente d'analyser les crochets dans l'instruction regex et son provoquant le programme de ne pas compiler. Si je supprime le @, (qui, on m'a dit de mettre là) je reçois une erreur de caractère d'échappement non valide sur le « \ de »
Heres la sortie du compilateur:
NCrawler.n:23:21:23:22: ←[01;31merror←[0m: when parsing this `(' brace group
NCrawler.n:23:38:23:39: ←[01;31merror←[0m: unexpected closing bracket `]'
NCrawler.n:22:57:22:58: ←[01;31merror←[0m: when parsing this `{' brace group
NCrawler.n:23:38:23:39: ←[01;31merror←[0m: unexpected closing bracket `]'
NCrawler.n:8:1:8:2: ←[01;31merror←[0m: when parsing this `{' brace group
NCrawler.n:23:38:23:39: ←[01;31merror←[0m: unexpected closing bracket `]'
NCrawler.n:23:38:23:39: ←[01;31merror←[0m: unexpected closing bracket `]'
(ligne 23 est la ligne avec le code regex dessus)
Que dois-je faire?
Pour la petite histoire, cette fonction est appelée « mot pour mot littéraux de chaîne ". – CMS