übereinstimmen Ich habe die folgende Methode in einigen Nemerle Code:Syntaxfehler in Regulärer Ausdruck Link 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
}
das Problem ist, dass der Compiler aus irgendeinem Grund die Klammern in der Regex-Anweisung versucht, und zu analysieren, ihre verursacht das Programm nicht kompilieren. Wenn ich das @ entfernen, (was ich gesagt wurde, dort zu setzen) bekomme ich ein ungültigen Escape-Zeichen-Fehler auf dem „\ s“
Heres Compiler Ausgabe:
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 `]'
(Linie 23 die Linie mit dem Regex-Code darauf)
Was soll ich tun?
Nur für das Protokoll, das Feature „wörtlich genannt wird Zeichenfolgenliterale ". – CMS