ich mit Index:
in folgendem FormatRegulärer Ausdruck einen Linie und Extrakt Dateinamen in Java
Index: /aap/guru/asdte/atsAPI.tcl
===================================================================
RCS file: /autons/atsAPI.tcl,v
retrieving revision 1.41
Index: /aap/guru/asdte/atsAPI1.tcl
===================================================================
RCS file: /autons/atsAPI1.tcl,v
retrieving revision 1.41
Was ich will, ist passend eine Linie starten String muß übereinstimmen und dann die Dateinamen von dem Pfad bekommen.
Ich meine zuerst erhalten Index: /aap/guru/asdte/atsAPI.tcl
und extrahieren Sie dann atsAPI.tcl
als Endergebnis.
Momentan benutze ich die Übereinstimmung zweimal, erste ganze Zeile und dann Extrahieren des Dateinamens.
Meine Frage ist, wie man es in einem einzigen regulären Ausdruck in Java macht.
aktuellen Code ist
String line = "Index: /aap/guru/asdte/atsAPI.tcl\r\n===================================================================\r\nRCS file: /autons/atsAPI.tcl,v\r\nretrieving revision 1.41\r\n\r\nIndex: /aap/guru/asdte/atsAPI1.tcl\r\n===================================================================\r\nRCS file: /autons/atsAPI1.tcl,v\r\nretrieving revision 1.41";
Pattern regex1 = Pattern.compile("Index:.*?\\n", Pattern.DOTALL);
Pattern regex2 = Pattern.compile("[^*/]+$");
Matcher matcher1 = regex1.matcher(line);
while (matcher1.find()) {
String s = matcher1.group(0);
Matcher matcher2 = regex2.matcher(s);
while (matcher2.find()) {
System.out.println(matcher2.group(0));
}
}
https://codebunk.com/b/128141613/ –
Sie Sie brauchen keine 'DOTALL'-Flagge, die Sie dazu brachte, Ihrem nicht-gierigen Punkt eine neue Zeile hinzuzufügen. '.' stimmt standardmäßig nicht mit Zeilenvorschüben überein. – revo
@g_p Ich habe in einer Antwort gezeigt, wie man es mit einem Regex zusammen mit einer funktionierenden Demo macht. Ich hoffe es hilft! – degant