3. Element mit regulären Ausdruck suchen

3ul3

Mitglied
Hallo,
habe ein Problem. Ich würde gerne mit Hilfe von regulären Ausdrücken aus einem Text das 3. <li> Element rausholen.
Ist so etwas möglich, wenn ja wäre ich dak bar für schnelle Hilfe.

P.S. Habe leider nur kurz geschaut ob es so ein Thema schon gibt (falls ja sry für doppel post) habe aber nix gefunden.
 

3ul3

Mitglied
hab halt eine liste von <li> und brauch nur die ersten 3 von 10, wie würde deine lösung aussehen wenn ich die verankern müsste?

Danke schonmal für deine Hilfe
 

timbeau

Gesperrter Benutzer
Ungetestet :

.*<li>.*<li>.*?(<li>)


Mittels Index kann dann ab dem 3. weiter gesucht werden.

edit: Was willst du genau?

Jedes 3. != die ersten 3 von 10
 

3ul3

Mitglied
ansich würde das gehen, nur leider ist das eine externe Seite, wo sich die id immer ändern und halt immer die ersten 3 angezeigt werden sollen

Edit:
Also sind News auf externen Seite und will immer die ersten 3. News also müsste ich das mit zählen machen. aber mit {3} würd es sicher auch nicht gehen
 

3ul3

Mitglied
sry wenn ich dich etwas verwirre.

Also die News welche immer ein <li> objetzt sind haben ids z.b id="artikel-23", wenn eine neue News kommt rutsch das runter und oben steht das neue <li> Objekt mit z.b id="artikel-54". und immer die ersten 3 soll es anzeigen.
 

XHelp

Top Contributor
weil da vermutlich noch Parameter im <li> stecken. An deiner Stelle würde ich immer den 1. li-tag rausfinden und das bereits untersuchte löschen oder die startposition für die Untersuchung verschieben. So bist du etwas flexibler.
 

XHelp

Top Contributor
Ein Blick in die API bei Matcher verrät:
public boolean find(int start)
Resets this matcher and then attempts to find the next subsequence of the input sequence that matches the pattern, starting at the specified index.
Das hat aber mit reguläden Ausdrücken nichts zu tun.
 

timbeau

Gesperrter Benutzer
Du kannst die Gruppen speichern.

<li> text1
<li> text2
<li> text3
<li> text4
<li> text5
<li> text6

z.B. : (<li> \p{L}*\d*)

und mittels matcher.group(index) nur die Gruppen 1,2 & 3 speichern.
 

Mizar

Aktives Mitglied
Ich verstehe nicht so recht, wieso man das ganze nicht mit einem allgemeinen regulären Ausdruck für Listenobjekte macht und dann einfach mitzählt. So zum Beispiel:
Java:
public static void main(String[] args)
{
	String data = "";
	try {
		Scanner scanner = new Scanner(new File("test.html"));
		data = scanner.useDelimiter("\\Z").next();
		scanner.close();
	} catch(FileNotFoundException e) {
		e.printStackTrace();
	}
	Pattern pattern = Pattern.compile("(?s)<li(?:(?:\"[^\"]*\"|\'[^\']*\'|[^\"\'>]*)*)>(.*?)</li>");
	Matcher matcher = pattern.matcher(data);
	for(int i = 0; i < 3 && matcher.find(); ++i) {
		System.out.printf("%d. Listenobjekt: %s%n", i + 1, matcher.group());
	}
}
Inhalt der test.html
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
	<title>Testseite</title>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
	<p>
		Test blah blah Test
	</p>
	<ul>
		<li id="artikel-54">
			<h3>Listenobjekt 1</h3>
			<p>Blah blah Blah</p>
		</li>
		<li id="artikel-42">
			<h3>Listenobjekt 2</h3>
			<p>Blah blah Blah</p>
		</li>
		<li id="artikel-23">
			<h3>Listenobjekt 3</h3>
			<p>Blah blah Blah</p>
		</li>
		<li id="artikel-16">
			<h3>Listenobjekt 4</h3>
			<p>Blah blah Blah</p>
		</li>
		<li id="artikel-15">
			<h3>Listenobjekt 5</h3>
			<p>Blah blah Blah</p>
		</li>
		<li id="artikel-8">
			<h3>Listenobjekt 6</h3>
			<p>Blah blah Blah</p>
		</li>
		<li id="artikel-4">
			<h3>Listenobjekt 7</h3>
			<p>Blah blah Blah</p>
		</li>
	</ul>
</body>
</html>
Ausgabe:
Code:
1. Listenobjekt: <li id="artikel-54">
			<h3>Listenobjekt 1</h3>
			<p>Blah blah Blah</p>
		</li>
2. Listenobjekt: <li id="artikel-42">
			<h3>Listenobjekt 2</h3>
			<p>Blah blah Blah</p>
		</li>
3. Listenobjekt: <li id="artikel-23">
			<h3>Listenobjekt 3</h3>
			<p>Blah blah Blah</p>
		</li>
 
D

Dow Jones

Gast
Ganz allgemein: Informationen aus Htmlseiten zu extrahieren macht mit XPath mehr Spaß als mit regulären Ausdrücken. Wenn du ein Toolkit wie HtmlCleaner verwendest kannst du die gesuchten li-Tags mit einem einfachen XPath-Ausdruck spezifizieren. Um z.B. ein einem Html Dokument nach der ersten nicht nummerierten Liste, die li-Tags mit dem Attribute ID enthält, zu suchen, und davon die ersten drei Einträge zu bekommen, kann man schreiben:
Java:
myHtml.evaluateXPath("//ul/li[@id][position() <= 3]")
(oder so ähnlich, genau habe ich das auch nicht mehr im Kopf)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Wie kann ich ein Element an den Anfang setzten ? Java Basics - Anfänger-Themen 1
pc pc pc pc pc letztes Element eines Arrays n Java Basics - Anfänger-Themen 3
heinrich172 Methoden Trotz gleichem Element stimmt Vergleich nicht? Java Basics - Anfänger-Themen 7
I Element n aus Datenbank Query (JPA / Hibernate) Java Basics - Anfänger-Themen 3
A Jedes zweite Element eines Arrays entfernen Java Basics - Anfänger-Themen 30
O Doppelt verkette Liste Element löschen Java Basics - Anfänger-Themen 15
L Längstes Element einer ArrayList ausgeben Java Basics - Anfänger-Themen 9
I Letztes, erstes Element vom Array Java Basics - Anfänger-Themen 9
districon Element in Liste einfügen Java Basics - Anfänger-Themen 1
Y Wie kann ich ein Element in einer toString finden. Java Basics - Anfänger-Themen 2
J Element aus Liste nehmen Java Basics - Anfänger-Themen 3
S Gibt es ein simples JWebbrowser Element? Java Basics - Anfänger-Themen 6
M Letztes Element einer ArrayList Java Basics - Anfänger-Themen 12
S Streams - kleinstes Element finden Java Basics - Anfänger-Themen 4
V_Fynn03 Beliebiges Element in einer Liste löschen (Java)(Lineare Datenstrukturen) Java Basics - Anfänger-Themen 9
V_Fynn03 Lineare Datenstrukturen Element löschen? Java Basics - Anfänger-Themen 2
J Selektiertes Element von jComboBox zwischenspeichern und wieder einsetzen Java Basics - Anfänger-Themen 0
Curtis_MC Collections Zufälliges Element aus Stack Java Basics - Anfänger-Themen 2
M Ist es möglich, das größte und zweitgrößte element in einem Array mit nur einer Schleife ausfindig zu machen ? Java Basics - Anfänger-Themen 19
X Array erstes und letztes Element tauschen Java Basics - Anfänger-Themen 2
A Konsolenausgabe: Hinter letztes Element ein "}" Java Basics - Anfänger-Themen 2
F nur das erste Element mit iterator ausgeben Java Basics - Anfänger-Themen 5
O Element aus Array löschen Java Basics - Anfänger-Themen 5
I Methoden List.contains() beim 2. Element = true Java Basics - Anfänger-Themen 1
M Array immer wieder um ein Element erweitern Java Basics - Anfänger-Themen 6
AnnaBauer21 org.w3c.dom.Element - Neues Element hinzufügen Java Basics - Anfänger-Themen 4
D doc.seect jsouo bestimmtes class element finden Java Basics - Anfänger-Themen 1
D Selenium Webdrive get x Element Java Basics - Anfänger-Themen 14
W Element aus HashSet in String umformen Java Basics - Anfänger-Themen 7
S Einfach verkettete Liste Element an bestimmter Position einfügen Java Basics - Anfänger-Themen 24
B Element in Array nach unten verschieben Java Basics - Anfänger-Themen 11
TechGirl JAVA GUI Oberfläche Umkreisung - wie heißt dieses Element? Java Basics - Anfänger-Themen 2
B Methoden Element aus einem Array löschen, Rest nach vorne verschieben? Java Basics - Anfänger-Themen 4
Z Html Element aus der Webseite auslesen Java Basics - Anfänger-Themen 1
A Hash Tabelle Element suchen Java Basics - Anfänger-Themen 1
K Collections Zugriff auf ein bestimmtes Element in der Collection Java Basics - Anfänger-Themen 1
K Element in ArrayList löschen ohne Index zu verschieben Java Basics - Anfänger-Themen 2
J Variablen Strings mit Zeilenumbrüchen in neues Array Element Java Basics - Anfänger-Themen 1
W Größtes Element im unsortierten Binärbaum Java Basics - Anfänger-Themen 7
S Günstigstes Element aus einer ArrayList ausgeben Java Basics - Anfänger-Themen 10
N ArrayList: Das zweite Element wird zur Liste nicht eingefügt nach dem zweiten request. Java Basics - Anfänger-Themen 3
Ruvok Prüfen ob bestimmtest Element existiert im Array Java Basics - Anfänger-Themen 11
A ResultSet: vorheriges Element auslesen Java Basics - Anfänger-Themen 10
F Element aus LinkedList löschen Java Basics - Anfänger-Themen 3
J Element zu jList hinzufügen NullPointerExcepetion Java Basics - Anfänger-Themen 2
H Kein Zugriff auf das Element einer JList möglich: Fehlermeldung Java Basics - Anfänger-Themen 2
V wie kann man am einfachsten für ein Element der JavaFX die Umrandung aktiwieren ? auch ohne css ? Java Basics - Anfänger-Themen 4
D Fehlermeldung "com.element.JavaUpload.Manager" Java Basics - Anfänger-Themen 1
S Element von List<E> in String umwandeln Java Basics - Anfänger-Themen 3
I Element löschen aus der Liste Java Basics - Anfänger-Themen 2
G element in ArrayList Hinzufügen Java Basics - Anfänger-Themen 16
M ArrayList-Element hinzufügen u. löschen Java Basics - Anfänger-Themen 2
H Möglichkeit, mehrere Element zu speichern Java Basics - Anfänger-Themen 8
P Element aus einer einelementigen Menge bekommen. Java Basics - Anfänger-Themen 8
M Letztes Element im Array finden Java Basics - Anfänger-Themen 3
R Mit iterator auf Element zugreifen Java Basics - Anfänger-Themen 2
G Element einem Array hinzufügen Java Basics - Anfänger-Themen 7
Madlip Erste Schritte Das 4. Element?!? Java Basics - Anfänger-Themen 2
B Erstes Element eines Vectors erhalten Java Basics - Anfänger-Themen 5
Q queue.remove Element trotzdem noch vorhanden. Java Basics - Anfänger-Themen 10
H Zugriff auf Vector Element Java Basics - Anfänger-Themen 2
N Array, Element in Array? Java Basics - Anfänger-Themen 8
I Liste Remove erstes Element Java Basics - Anfänger-Themen 5
M Map mit Vektor: Element hinzufügen Java Basics - Anfänger-Themen 21
M element aus DB lesen Java Basics - Anfänger-Themen 4
C Variablen array element hinzufügen/entfernen Java Basics - Anfänger-Themen 10
K Letzter element aus einem Array Java Basics - Anfänger-Themen 5
S JDBC MySQL Connector - Element mit ' eintragen? Java Basics - Anfänger-Themen 4
R Element an ArrayList<int[]> "anonym" adden? Java Basics - Anfänger-Themen 3
Glühwürmchen Prüfen ob Element in ArrayList Java Basics - Anfänger-Themen 23
C Ausgewähltes Element einer JCombobox in JTextField Java Basics - Anfänger-Themen 3
L Element in Mitten eines Arrays einfügen Java Basics - Anfänger-Themen 3
S ArrayList nur ergänzen wenn Element noch nicht vorhanden Java Basics - Anfänger-Themen 4
S Auf Element in Arry zugreifen Java Basics - Anfänger-Themen 7
M String-Array-Element wieder null zuweisen Java Basics - Anfänger-Themen 16
B Element aus Array entfernen Java Basics - Anfänger-Themen 13
B Element in Folge suchen Java Basics - Anfänger-Themen 7
H Zeiger auf das letzte Element in einer linearen Liste Java Basics - Anfänger-Themen 4
A Array ein element hinzufügen. Java Basics - Anfänger-Themen 6
S element in Array kopieren Java Basics - Anfänger-Themen 12
S Auf Element aus Array zugreifen Java Basics - Anfänger-Themen 6
H LinkedList Element an Stelle x ausgeben? Java Basics - Anfänger-Themen 5
S Datentypen In ArrayList nach Element suchen und Position ausgeben Java Basics - Anfänger-Themen 9
M Wert soll element aus den natürlichen Zahen inkl. 0 sein Java Basics - Anfänger-Themen 6
T Letztes beschriebenes Array-Element ausgeben Java Basics - Anfänger-Themen 6
E TreeSet Element löschen Java Basics - Anfänger-Themen 9
J Stapel oberstes Element entfernen Java Basics - Anfänger-Themen 5
C Erstes Arraylist Element in for Schleife überspringen Java Basics - Anfänger-Themen 6
F jTable - neues Element vorher auf existenz Prüfen Java Basics - Anfänger-Themen 7
P Klasse nach Element casten Java Basics - Anfänger-Themen 4
G Mit Java Quelltext auf Element untersuchen. Java Basics - Anfänger-Themen 5
T Array auf einfaches Element umwandeln Java Basics - Anfänger-Themen 8
DasDogma Verkettete Liste - Element löschen Java Basics - Anfänger-Themen 2
O i-tes element eingeben? Java Basics - Anfänger-Themen 2
B Delete Methode löscht falsches Element Java Basics - Anfänger-Themen 7
S ArrayList<Element> - "unchecked or unsafe operati Java Basics - Anfänger-Themen 13
N nicht editierbare combobox davon oberstes element auslesen? Java Basics - Anfänger-Themen 5
G Bestimmtes Element in ArrayList finden Java Basics - Anfänger-Themen 3
J Array: Jedem Element direkt denselben Wert zuweisen Java Basics - Anfänger-Themen 6
M ArrayList remove Element? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben