Bestimmten String mit Pattern und Matcher herauslesen => kein erfolg

Hintertür

Mitglied
Hallo Community,

Suche und google benutzt, keine passende lösung bevor was is^^

bin neu hier und hoffe es gefällt mir :)
Kurz zu mir: Ich bin noch nicht lange in der Java-Programmierung drinne ( erst seit ca 1 1/2 Jahren) und habe neulich an einem neuen Programm gearbeitet. Dort wollte ich, um eine bestimmte Textstelle herauszulesen, die Klassen Pattern und Matcher hinzuziehen. In einem kleinen Beispielprogramm funkioniert es:
Java:
 import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class TestClass {

    
    public void test() {
        String st = "das ist Text und HIER ist mehr Text";
        
        Pattern p = Pattern.compile(".*?HIER\\s(.*?)Text");
        Matcher m = p.matcher(st);
        boolean matches = m.matches();
        int groupCount = m.groupCount();
        String interessanterString = m.group(1);
    }

Im String "interessanterString" steht "ist mehr" drin. Funktioniert super. Doch es ist nur ein kurzer Text im vergleich zu:


#============================
# Schnittstellenkonfiguration
#============================
pushd interface
reset all
popd
# Ende der Schnittstellenkonfiguration

#============================
# Schnittstellenkonfiguration
#============================
pushd interface ipv6
uninstall
popd
# Ende der Schnittstellenkonfiguration
# ----------------------------------
# ISATAP-Konfiguration
# ----------------------------------
pushd interface ipv6 isatap
popd
# Ende der ISATAP-Konfiguration
# ----------------------------------
# 6-zu-4-Konfiguration
# ----------------------------------
pushd interface ipv6 6to4
reset
popd
# Ende der 6-zu-4-Konfiguration
#========================
# Portproxykonfiguration
#========================
pushd interface portproxy
reset
popd
# Ende der Portproxykonfiguration

# ----------------------------------
# Schnittstellen-IP-Konfiguration
# ----------------------------------
pushd interface ip


# Schnittstellen-IP-Konfiguration für ""LAN-Verbindung""

set address name="LAN-Verbindung" source=dhcp
set dns name="LAN-Verbindung" source=dhcp register=PRIMARY
set wins name="LAN-Verbindung" source=dhcp


popd
# Ende der Schnittstellen-IP-Konfiguration

Wie ihr seht: deutlich länger^^
Ich möchte gerne "dhcp" von "set address name="LAN-Verbindung" source=dhcp " herauslesen, und er will mir den String einfach nicht geben. Mein code dazu:
Java:
        Runtime rt = Runtime.getRuntime();
        Process p = null;
        p = rt.exec ("netsh interface dump");
//        p.waitFor();
        InputStream in = p.getInputStream();
        String ausgabe = StringTools.stringFromInputStream(in);// Liest die ausgabe ein und schreibt sie zu ausgabe hinzu
        Pattern pattern = Pattern.compile(".*?set address name=\"LAN-Verbindung\" source=(.*?) \\r\\nset dns name=");
        Matcher m = pattern.matcher(ausgabe);
        boolean matcher =m.matches();
        int groupCount = m.groupCount();
        String interessanterText = m.group(1);
        if (interessanterText.equalsIgnoreCase("dhcp")) {
            System.out.println("Funktioniert");
        }

Der Text hier steht im String ausgabe drinne (der dos befehl mit zeilenumbrüchen): "\r\nset address name="LAN-Verbindung" source=dhcp \r\nset dns name="

Mache ich etwas falsch? habe ich was blödes Programmiert?^^
Komme einfach nicht weiter...

MfG,
Hintertür
 

XHelp

Top Contributor
Vllt funktioniert:
[JAVA=7]
Pattern pattern = Pattern.compile("set address name=\"LAN-Verbindung\" source=(\\w*)")
[/code]
 

Hintertür

Mitglied
hab ich mir schon gedacht :) hab ich auch probiert leider ohne erfolg..

ich dachte schon daran das es an den mehreren zeilen liegt, sprich man könnte auch MULTILINE
(Java Platform SE 6 Pattern) testen, jedoch hab ich keine ahnung wie ich es aktiviere... :(

danke schonmal für die schnelle antwort

Edit: bei dir fehlt noch das .*? vor set oder meinste das auch mal weg? oO
 

Hintertür

Mitglied
also das gepostete beispielprogramm funzt einwandfrei, habe mir gedacht, ist ja nur nen anderer string, und andere werte (marker) zum auslesen.

falsch gedacht leider, funzt nicht.

und habs grad nochmal mit \\w* versucht (deinem zitat nach) und der boolean matcher sagt immernoch false :/
 
Zuletzt bearbeitet:

Hintertür

Mitglied
ok, das problem hat sich gelöst....

anstatt den
m.matcher();

musste ich nen
m.find(); machen.... danke trotzdem für die hilfe @ XHelp :)

MfG
Hintertür
 

kama

Top Contributor
Hallo,

Java:
Pattern pattern = Pattern.compile(".*?set address name=\"LAN-Verbindung\" source=(.*?) \\r\\nset dns name=");
Ich würde hier vorschlagen zuerst einmal das space zu löschen bzw. durch einen flexiblen RegEx zu ersetzen...weil hinter "source=(.*?)" noch ein Space steht...

Java:
Pattern pattern = Pattern.compile(".*?set address name=\"LAN-Verbindung\" source=(.*?)\\s*");
Dann würde das RegEx noch ein wenig flexibler im Bezug auf White-Spaces machen...

Java:
Pattern pattern = Pattern.compile(".*?set\\s+address\\s+name\\s*=\\s*\"LAN-Verbindung\"\\s+source=(.*?)\\s*");

Eventuell würde ich mir auch überlegen das Ganze in drei RegEx zu machen....

Gruß
Karl Heinz Marbaise
 

Hintertür

Mitglied
Hi kama,

danke für deine überlegungen und die zeit!
das problem lag unteranderem beim Pattern.compile, jedoch auch beim matcher. der richtige programmcode ist folgender (bzw. eine möglichkeit):
Java:
Pattern pattern = Pattern.compile("set address name=\"LAN-Verbindung\" source=(.*?)set dns name=",Pattern.DOTALL );
        Matcher m = pattern.matcher(ausgabe);
        boolean matcher =m.find();
Edit: damit meine ich das ich das problem nach langer suche in den docs doch noch gefunden habe :/
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
KilledByCheese String an bestimmten Stellen teilen Allgemeine Java-Themen 2
H Bestimmten Wert aus String parsen Allgemeine Java-Themen 7
F Laden von bestimmten Daten aus TAR Archiv Allgemeine Java-Themen 23
M Datensatz auf ein bestimmten Parameter einzugrenzen Allgemeine Java-Themen 11
O Jar lässt sich auf bestimmten Pc nicht starten Allgemeine Java-Themen 18
kodela bestimmten Dateityp immer mit jar-Datei öffnen Allgemeine Java-Themen 17
I DOM-Parser - Element im Element an bestimmten Stellen auslesen Allgemeine Java-Themen 1
C Movement auf bestimmten Weg bestimmen Allgemeine Java-Themen 11
S Apache POI Filtern nach bestimmten Kriterium Allgemeine Java-Themen 1
C Config nach bestimmten Wertdurchsuchen. Allgemeine Java-Themen 2
V Bilder bei bestimmten Zeiten wechseln, bitte um Hilfe Allgemeine Java-Themen 5
N Das Ende von bestimmten zeilen in text datei ändern und speichern Allgemeine Java-Themen 3
FrittenFritze Swing Apache Batik - Zoom an einer bestimmten Stelle Allgemeine Java-Themen 4
K Bestimmten Bereich eines Strings lesen Allgemeine Java-Themen 6
L Erste Schritte Java Date Format Pattern bestimmten Allgemeine Java-Themen 2
B Sprachdatei anhand von bestimmten Kriterien zerschneiden Allgemeine Java-Themen 0
L Von ArrayList abgeleitete Klasse nur mit bestimmten Objekten füllen Allgemeine Java-Themen 1
A Fehlerhafte Nst Berechnung einer bestimmten Fkt. (Bisektion) Allgemeine Java-Themen 10
M Ein Programm das nur von einem bestimmten Programm geöffnet werden kann Allgemeine Java-Themen 7
V Klassenname von allen Klassen mit einer bestimmten Eigenschaft bekommen Allgemeine Java-Themen 2
C Generic-Funktion nur bei bestimmten Typen erlauben Allgemeine Java-Themen 6
H Bestimmte Aufgaben zur bestimmter Zeit/ in bestimmten Intervallen Allgemeine Java-Themen 3
E Tool um Methodenaufrufe aus bestimmten Pkg zu finden Allgemeine Java-Themen 2
S Methoden Stunden seit einem bestimmten Zeitpunkt Allgemeine Java-Themen 3
J Ist eine Instanz von einem bestimmten Object Typ? Allgemeine Java-Themen 6
N Zahl mit bestimmter Länge und nur bestimmten Zahlen generieren lassen Allgemeine Java-Themen 7
T Sechsecke, erkennen von bestimmten Werten Allgemeine Java-Themen 9
A Excel nach bestimmten Inhalt durchsuchen Allgemeine Java-Themen 8
F Dynamisch ein Objekt einer bestimmten Subklasse erstellen Allgemeine Java-Themen 7
c_sidi90 Werte an bestimmten Position aus PDF in DB sichern Allgemeine Java-Themen 2
L Java TimeZone für bestimmten offset -> Bessere Möglichkeit? Allgemeine Java-Themen 2
L Sicherstellen das 2x die gleichen Daten unter bestimmten Keys enthalten sind. Allgemeine Java-Themen 6
T Javaprogramm unter Linux auf bestimmten Kern starten/laufen lassen ? Allgemeine Java-Themen 22
S JavaCC : SKIP Token nur für bestimmten Bereich ?? Allgemeine Java-Themen 2
B PDF lesen funktioniert bei bestimmten Dateien nicht mit pdfview Allgemeine Java-Themen 4
isowiz java.util.List: Sortierung nicht nach bestimmten Attribut? Allgemeine Java-Themen 4
D Ereigniss zur bestimmten Uhrzeit Allgemeine Java-Themen 3
Developer_X Ein Array nach einem bestimmten Attribut sortieren Allgemeine Java-Themen 3
D Objekte nur unter bestimmten Voraussetzungen erzeugen Allgemeine Java-Themen 4
B Scheduler soll bestimmten Job stoppen Allgemeine Java-Themen 4
J Jar zu einer bestimmten Uzeit Ausführen Allgemeine Java-Themen 8
Schandro Datei öffnen mit... Bestimmten Dateityp mit einen Java-Programm öffnen lassen Allgemeine Java-Themen 5
R Drucken über bestimmten Drucker Allgemeine Java-Themen 11
T Bestimmten Inhalt aus Manifest.MF auslesen Allgemeine Java-Themen 8
K Suche alle Objekte einer bestimmten Klasse Allgemeine Java-Themen 2
R bestimmten HTML Code per JAva lesen lassen Allgemeine Java-Themen 7
J Konstruktor-Aufruf nur aus einem bestimmten Package erlauben Allgemeine Java-Themen 5
R Ab bestimmten Trennzeichen linke Seite. Allgemeine Java-Themen 2
O Klassen mit bestimmten Interface finden Allgemeine Java-Themen 11
C Farbpunkt von einer bestimmten Fensterposition lesen Allgemeine Java-Themen 7
S installer mit bestimmten features? Allgemeine Java-Themen 2
N Dateien mit einer bestimmten Erweiterung suchen Allgemeine Java-Themen 9
M Problem mit bestimmten ASCII Codes Allgemeine Java-Themen 3
S addAtPosition - Zahl an einer bestimmten Position einfügen Allgemeine Java-Themen 8
M PDF-Datei nach einer bestimmten zeichenfolge durchsuchen Allgemeine Java-Themen 2
C EML Email Text in String wandeln Allgemeine Java-Themen 11
OnDemand Java String in Hashmap als Key NULL Allgemeine Java-Themen 27
JAnruVA Datentypen Berechneten String-Wert in Double umwandeln um weiter zu rechnen Allgemeine Java-Themen 7
M String Allgemeine Java-Themen 10
M Suche nach String mit unbekannten characters Allgemeine Java-Themen 53
kodela String kann nicht zu Pfad konvertiert werden Allgemeine Java-Themen 16
melaniemueller Einzelne Zeile aus einer txt Datei in einem String speichern Allgemeine Java-Themen 12
E Objekte in einen String packen und wieder laden Allgemeine Java-Themen 5
M Map<String,String>funktioniert nicht richtig Allgemeine Java-Themen 4
O String in Long Hexerdezimal umwandel Allgemeine Java-Themen 14
N String vergleichen. Allgemeine Java-Themen 27
P String.replace() funktioniert nicht? Allgemeine Java-Themen 3
SaschaMeyer Arbeitet String.split falsch? Allgemeine Java-Themen 4
M Switches ohne String Allgemeine Java-Themen 18
AmsananKING String Iteration Allgemeine Java-Themen 5
S Shuffle String aus if-clause Allgemeine Java-Themen 11
Besset Variablen Ist String = "" + int inordnung? Allgemeine Java-Themen 6
M Map <Long, String> zu Map<String, Long> Allgemeine Java-Themen 9
S String Encoding Verständnisproblem Allgemeine Java-Themen 22
N Prüfen, ob ein String 2x das selbe Zeichen hat Allgemeine Java-Themen 10
SaftigMelo Bug Fixen von String-spliten Allgemeine Java-Themen 8
Monokuma String List nach Zahlen und Worten sortieren Allgemeine Java-Themen 9
Kingamadeus2000 Alle mehrfach vorkommenden Buchstaben rekursiv aus einem String entfernen. Allgemeine Java-Themen 6
YohnsonM String - Aufteilung und Nutzung einzelner Chars Allgemeine Java-Themen 7
O Formatierte String ausgabe bei vier Variablen in einer Zeile Allgemeine Java-Themen 1
S String umbenennen: wie? Allgemeine Java-Themen 4
x46 String Format Fehler Allgemeine Java-Themen 2
S ISO 8601 -> getter / setter String Allgemeine Java-Themen 3
L String zu repräsentativen Wert Allgemeine Java-Themen 0
H Array mit dem Datentype String[] initializieren Allgemeine Java-Themen 7
L ArrayList mit String Arrays in ein Array umwandeln Allgemeine Java-Themen 1
L regex ganzer string? Allgemeine Java-Themen 2
L Ist ein string ein erlaubter variabel name? Allgemeine Java-Themen 2
Z JNA Cpp-DLL String Verwendung Allgemeine Java-Themen 2
A String auf Zahlen überprüfen Allgemeine Java-Themen 5
N String Array Eingabe Allgemeine Java-Themen 6
MiMa Datum von String zu LocalDateTime Allgemeine Java-Themen 8
W String -> byte[] -> String - Sieht jemand was ich nicht sehe? Allgemeine Java-Themen 10
R char aus String entfernen Allgemeine Java-Themen 10
LimDul Mittels Streams aus Strings A B C den String A, B und C machen Allgemeine Java-Themen 12
M Programm erkennt String aus .txt Datei nicht Allgemeine Java-Themen 3
P einen public <Optinal String> in einer anderen Klasse mit einem Int vergleichen Allgemeine Java-Themen 2
S Ini Text aus String parsen Allgemeine Java-Themen 1
T String-Manipulation beim Ablauf in Eclipse und als JAR-File Allgemeine Java-Themen 8
M String lässt sich nicht Zusammenfügen Allgemeine Java-Themen 10

Ähnliche Java Themen


Oben