wie verwenden von Pattern-matcher in java?
können sagen, dass die Zeichenfolge ist <title>xyz</title>
Ich möchte zum extrahieren der xyz
aus dem string.
Verwendet habe ich:
Pattern titlePattern = Pattern.compile("<title>\\s*(.+?)\\s*</title>");
Matcher titleMatcher = titlePattern.matcher(line);
String title=titleMatcher.group(1));
aber ich erhalte einen Fehler für titlePattern.matcher(line);
Sie müssen den Leuten sagen, was das problem ist, wenn Sie das von uns erwarten, um zu Debuggen.
Jemanden warnen, dieser Kerl etwa re + html!
Jemanden warnen, dieser Kerl etwa re + html!
InformationsquelleAutor hao | 2009-12-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sagen Sie Ihre Fehler tritt auf, früher (was ist der eigentliche Fehler, läuft ohne Fehler bei mir), aber nach der Lösung, die Sie benötigen, um call
find()
auf der matcher einmal, um tatsächlich suchen Sie für die Muster:Nicht, dass, wenn Sie wirklich Spiel gegen einen string mit non-escaped " HTML-entities wie
Dann deinen regulären Ausdruck verwenden diese, nicht entgangen Personen:
Außerdem sollte man vorsichtig sein, wie weit Sie versuchen, mit diesem zu bekommen, wie Sie kann nicht wirklich Parsen von HTML oder XML mit regulären Ausdrücken. Wenn Sie die Arbeit mit XML ist es viel einfacher, mit einem XML-parser, z.B. JDOM.
Sie sind immer Ausnahme oder sind Sie nur nicht immer das richtige Ergebnis?
es scheint titleMatcher.finden() immer zu false ausgewertet wird, obwohl die Zeichenfolge <title>xyz</title>. Also meine einzige Sorge ist, dass dieses Teil falsch ist <title>\\s*(.+?)\\s*</title>
Ja, siehe meine Ergänzung zur Antwort. Ich habe es versucht mit dem regulären Ausdruck, den ich gab, am Ende, mit dem string oben, und es funktioniert für mich.
vielen Dank, es funktioniert jetzt
InformationsquelleAutor Fabian Steeg
Technisch nicht eine Antwort, aber Sie sollten nicht verwenden reguläre Ausdrücke zum Parsen von HTML. Sie können versuchen, und Sie können Weg mit es für einfache Aufgaben, aber HTML kann hässlich werden. Es gibt eine Reihe von Java-Bibliotheken, können Sie analysieren, HTML - /XML-Prima. Wenn du gehst, werden viel arbeiten mit HTML/XML, es wäre Wert Ihre Zeit, Sie zu lernen.
InformationsquelleAutor Pace
Als andere haben vorgeschlagen, es ist wahrscheinlich nicht eine gute Idee, das Parsen von HTML - /XML mit regex. Sie können analysieren XML-Dokumente mit den standard-java-API, aber ich empfehle es nicht. Als Fabian Steeg schon beantwortet, ist es wahrscheinlich besser, verwenden JDOM oder einer ähnlichen open-source-Bibliothek für das Parsen von XML.
Mit javax.xml.Parser können Sie Folgendes tun:
Dieser parst den XML-string in ein Dokument Objekt, das Sie verwenden können, für die weitere lookups. Die API ist irgendwie schrecklich obwohl.
Eine weitere Möglichkeit ist das verwenden von XPath für die Suche:
InformationsquelleAutor