Ich versuche, eine Suche 'herumzuwickeln', grundsätzlich zu ignorieren \ n bei der Verwendung von Ether IndexOf oder Regex Pattern. Ich kann nicht einfach alle Zeilenumbruchzeichen entfernen, da dann die gefundenen Indizes falsch wären.ignorieren newline für die Suche nach einer Nadel im Heuhaufen und bewahren Sie die Textpositionen
Zum Beispiel:
Matcher matcher = Pattern.compile("dog").matcher("cat\n do\ng cow");
matcher.find();
int start = matcher.start();
int end = matcher.end();
System.out.println("Start: "+start+" End: "+end);
Should Ausgang:
Start: 5 End: 9
Wenn ich die Zeilenumbrüche zu entfernen,
Matcher matcher = Pattern.compile("dog").matcher("cat\n do\ng cow".replaceAll("\n",""));
Dann würden die Indizes verkorkste werden:
Start: 4 End: 7
Hinweis: Ich werde auch komplexere Regex verwenden, als ich im Beispiel verwendet habe.
Ich implementiere die Suche-Funktion in einem Texteditor und versuche, eine "Wrap around" -Option zu erstellen. Irgendwelche Ideen?
Was meinst du mit ignorieren sie? Sie sagen, dass Sie sie nicht entfernen können, weil die Indizes falsch sind, aber wenn Sie indexOf tun, zählt es die Newline-Zeichen und Sie würden sie nicht ignorieren. Bitte gewünschte Eingabe und Ausgabe anzeigen. – Danny
Bitte zeigen Sie auch, was Sie versuchen (über Code), damit die Leute versuchen können, Sie in eine Lösung zu führen. –