RegEx erstellen

Status
Nicht offen für weitere Antworten.

DarkNight

Mitglied
Hallo Leute!

Versuche mich gerade daran eine RegeEx zusammenzubasteln. Und zwar soll sie folgendes können:

Code:
String name  = "HELLO IM THE WORLD PROGRAM";

Sie soll den oberen String erkennen. d.h alle Buchstaben sind Groß [A-Z] und natürlich auch die Leerzeichen dazwischen. Wobei noch zu beachten ist das es keine führenden und abschließenden Leerzeichen geben soll.

Also ich hab mal folgendes zusammengestückelt. Funktioniert aber nicht.

Code:
Pattern.matches("^[^\t\n\r\f][A-Z\t\n\r\f]*[^\t\n\r\f]$", name);

Wäre toll wenn sich jemand dieser regEx annimmt oder mir einen Tipp geben könnte wie ich sie richtig machen kann.

Gruß
Chris
 

Tobias

Top Contributor
Code:
\A[A-Z\s]+\z

wäre jetzt mein erster Ansatz gewesen ...

mpG
Tobias

P.S.: Wenn du das Pattern als Java-String übergibst musst du die Backslashs verdoppeln, da der Backslash für die Stringklasse selbst ebenfalls ein Escape-Zeichen ist.
 

0x7F800000

Top Contributor
Code:
[A-Z]+(([A-Z]| |\\t)*[A-Z]+)   //das soll schon direkt so in den code reinkommen, der eigentliche regex hat nen slash weniger
wäre jetzt mein erster Ansatz gewesen... :roll: muss nicht sonderlich effizient oder voll richtig sein....
 

unruhe

Mitglied
Hallo Liebe Gegex Profs

Bitte euch um eure hilfe, habe ein ein Problem mit einem eigentlich simplen ausdruck.

ich versuche die beiden h2 tags zu trennen und kriege es einfach nicht gebacken.

Code:
public class RegEx {

    private String st_h1_g1;
    private String st_File = "<h2><a class=\"an\" name=\"das_dynamische\">Das \"Dynamische\" an Dynamischem HTML</a></h2>" +
            "<h2><a class=\"an\" name=\"inkompatibilitaeten\">Das Problem der inkompatiblen Modelle</a></h2>";

    public void FileStringH1Pattern() {

        //String stPattern = "<h2>([^<]*)</h2>";
        String stPattern = "<h2>(.*)</h2>";
        for (MatchResult r : findMatches(stPattern, st_File)) {
            st_h1_g1 = (r.group(1));
            System.out.println(st_h1_g1);
        }
    }

    public static Iterable<MatchResult> findMatches(String pattern, CharSequence s) {
        List<MatchResult> results = new ArrayList<MatchResult>();
        for (Matcher m = Pattern.compile(pattern).matcher(s); m.find();) {
            results.add(m.toMatchResult());
        }
        return results;
    }
}

Eigentlich müsste ich doch in den [] beschreiben über welche zeichen er nicht hinweg gehen darf, mit einzelnen zeichen z.B. [^<]*)< funktioniert dies auch doch ich müsste ja das ganze </h2> "negieren"(oder wie man dem auch sagt) und dies krieg ich nicht lauffähig.
 

unruhe

Mitglied
1.
Code:
String stPattern = "<h2>([^(</h2>)]*)</h2>";
2.
Code:
String stPattern = "<h2>(.*[^(</h2>)])</h2>";

So änlich dänke ich solte das Statemant lauten.

Ausgabe ist bei:
1. ohne ausgabe
2. <a class="an" name="das_dynamische">Das "Dynamische" an Dynamischem HTML </a>

Ausgabe sol:

<a class="an" name="das_dynamische">Das "Dynamische" an Dynamischem HTML </a>
<a class="an" name="inkompatibilitaeten">Das Problem der inkompatiblen Modelle</a>

Auch um einen denkanstoss währe ich sehr dankbar!!
 
S

SlaterB

Gast
ich glaube, dass du damit die RegEx überforderst,
ein kleiner Trick ist noch, </h2> vorher durch ein bestimmtes Zeichen, z.B. # zu ersetzen, und damit zu arbeiten
 

xdavidx

Aktives Mitglied
Code:
String name  = "HELLO IM THE WORLD PROGRAM";

if(Pattern.matches("^[A-Z ]+$",name.trim())) {

...
}

Sie soll den oberen String erkennen. d.h alle Buchstaben sind Groß [A-Z] und natürlich auch die Leerzeichen dazwischen. Wobei noch zu beachten ist das es keine führenden und abschließenden Leerzeichen geben soll.
 

unruhe

Mitglied
ich glaube, dass du damit die RegEx überforderst,
ein kleiner Trick ist noch, </h2> vorher durch ein bestimmtes Zeichen, z.B. # zu ersetzen, und damit zu arbeiten

Das kann doch nicht der ernst sein oder??

Das Mächtige RegEx am ende? Bei einer meiner ersten Produktiven RegEx anwendungen?

Habe in der zwischenzeit noch rausgefunden das man mit (?:......) das ganze Grupieren kann ohne den Inhalt in der Klammer zu speichern.

also müste es doch so gehen. Funzt aber auch nicht.

Code:
"<h2>([(?:</h2>)]*)</h2>"

ist doch eigentlich genau das selbe wie.
Code:
public class RegEx {

    private String st_h1_g1 = "";
    private String st_File = "<h2><a class=\"an\" name=\"das_dynamische\">Das \"Dynamische\" an Dynamischem HTML </a> </h2>hff jzgjzf ujkzgf ukzfukf ugjf<h2><a class=\"an\" name=\"inkompatibilitaeten\">Das Problem der inkompatiblen Modelle</a></h2> <h2><a class=\"an\" name=\"inkompatibilitaeten\">ganz ein anderes Problem</a></h2> ";

    public void FileStringH1Pattern() {

        //String stPattern = "<h2>([^<]*)</h2>";
        //String stPattern = "<h2>([^/h2].*)</h2>";
        //String stPattern = "<h2>([(?:</h2>)]*)</h2>";
        String stPattern = "<h2>([^>]*)>";
        
        for (MatchResult r : findMatches(stPattern, st_File)) {
            st_h1_g1 = (r.group(1));
            System.out.println("Ich bins " + st_h1_g1);
        }
                    System.out.println(stPattern);
    }

    public static Iterable<MatchResult> findMatches(String pattern, CharSequence s) {
        List<MatchResult> results = new ArrayList<MatchResult>();
        for (Matcher m = Pattern.compile(pattern).matcher(s); m.find();) {
            results.add(m.toMatchResult());
        }
        return results;
    }
}
Der Funzt aber halt nicht mit h2 sondern nur >

Ausgabe:
Ich bins <a class="an" name="das_dynamische"
Ich bins <a class="an" name="inkompatibilitaeten"
Ich bins <a class="an" name="inkompatibilitaeten"
<h2>([^>]*)>

echt niemand eine Lösung??
 

0x7F800000

Top Contributor
was passt dir denn an
Code:
"<h2>(.*?)</h2>"
nicht? Dieser regex sucht sich den anfangstag <h2> , schiebt alles was er findet in group(1), bis er auf </h2> stößt, und hört dann auf, weil er nongreedy (mit *? statt *) ist.

Hier, das tut doch das was du wolltest, die ueberschriften isolieren, oder wie war das? :
Code:
import java.util.regex.*;

public class RegEx { 

    private static String st_File = 
    		"<h2><a class=\"an\" name=\"das_dynamische\">Das \"Dynamische\" an Dynamischem HTML </a> </h2>" +
    		"hff jzgjzf ujkzgf ukzfukf ugjf" +
    		"<h2><a class=\"an\" name=\"inkompatibilitaeten\">Das Problem der inkompatiblen Modelle</a></h2>" +
    		"<h2><a class=\"an\" name=\"inkompatibilitaeten\">ganz ein anderes Problem</a></h2> "; 

    public static void main(String[] args){ 
        String pattern= "<h2>(.*?)</h2>";
        Matcher m=Pattern.compile(pattern).matcher(st_File);
        while(m.find()){
        	System.out.println(m.group(1));
        }
    }
}

Ausgabe:
<a class="an" name="das_dynamische">Das "Dynamische" an Dynamischem HTML </a>
<a class="an" name="inkompatibilitaeten">Das Problem der inkompatiblen Modelle</a>
<a class="an" name="inkompatibilitaeten">ganz ein anderes Problem</a>

edit: und welchen grund gab es überhaupt, den alten thread zu kapern? ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
X Wie kann man ein Regex erstellen, die 8-Bit-Binär-Zahlen darstellen. Java Basics - Anfänger-Themen 1
M Regex für bestimmte Wörter bzw. bestimmte Zeichen erstellen Java Basics - Anfänger-Themen 5
D Regex greift nicht richtig Java Basics - Anfänger-Themen 4
B Regex Order unwichtig bei Lookaheads? Java Basics - Anfänger-Themen 7
F RegEx Hilfe Java Basics - Anfänger-Themen 5
R RegEx funktioniert nicht Java Basics - Anfänger-Themen 14
B Regex Ausdrücke für Monate Java Basics - Anfänger-Themen 7
W RegEx Java Basics - Anfänger-Themen 4
K REGEX - Rechnungsbetrag wird nicht richtig ausgelesen. Java Basics - Anfänger-Themen 3
A Zusammengesetzte Nomen/Straßennamen mit Regex-Ausdrücken trennen Java Basics - Anfänger-Themen 8
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
H Java Regex Aufzählung kontrollieren Java Basics - Anfänger-Themen 3
Nooobi Regex und .matches() geben keine Ausnahme Java Basics - Anfänger-Themen 10
sserio Split() -> Regex Frage. Java Basics - Anfänger-Themen 7
K Wie verneine ich einen Regex? Java Basics - Anfänger-Themen 2
L Hilfe bei RegEx Java Basics - Anfänger-Themen 4
Dimax RegEx Java Basics - Anfänger-Themen 10
P Einfacher regulärer Ausdruck (RegEx) für E-Mail-Adressen Java Basics - Anfänger-Themen 2
O Regex bei ReplaceAll ersetzt Wort und Sonderzeichen nicht. Java Basics - Anfänger-Themen 9
O Text mit Regex trennen und wieder zusammenbauen Java Basics - Anfänger-Themen 5
L Regex issue Java Basics - Anfänger-Themen 4
B Regex Kombination benötigt Java Basics - Anfänger-Themen 5
strohkolben Regex Java Basics - Anfänger-Themen 3
OnDemand Regex oder Split? Java Basics - Anfänger-Themen 5
I String.split regex Frage Java Basics - Anfänger-Themen 2
C RegEx Problem Java Basics - Anfänger-Themen 4
Dimax RegEx funktionieren nicht Java Basics - Anfänger-Themen 7
M Regex nur Zahlen und Punkt zulassen, Keine Eingabe(Leeres TextFeld) nicht zulassen Java Basics - Anfänger-Themen 6
K substitute mit regex Java Basics - Anfänger-Themen 10
G RegEx Java Basics - Anfänger-Themen 11
M Regex Erstellung Problem Java Basics - Anfänger-Themen 2
M Regex Probleme (mal wieder) Java Basics - Anfänger-Themen 3
M Regex zum Integer.parseInt Java Basics - Anfänger-Themen 4
G Regex Java Basics - Anfänger-Themen 4
M Regex-Ausdruck: Alle Zeichen bis auf ein bestimmtes erlauben (p{L}) Java Basics - Anfänger-Themen 5
M Regex anpassen Java Basics - Anfänger-Themen 19
C Regex-Problem Java Basics - Anfänger-Themen 4
C Positive und negative Zahlen mit Regex extrahieren Java Basics - Anfänger-Themen 8
F RegEx für Email Java Basics - Anfänger-Themen 2
F RegEx "+" nur als Zeichen, nicht als Operator oder Sonstiges Java Basics - Anfänger-Themen 2
FelixN RegEx aus einem String als String-Array zurückgeben Java Basics - Anfänger-Themen 8
FelixN RegEx Erläuterung "ˆ[ˆa-zA-Z]+$" Java Basics - Anfänger-Themen 6
F Regex Hilfe Java Basics - Anfänger-Themen 3
I Regex findet keine Treffer Java Basics - Anfänger-Themen 4
C Regex Java Basics - Anfänger-Themen 2
C Probleme bei Regex Java Basics - Anfänger-Themen 9
B Regex ignorieren von Groß - Kleinschreibung Java Basics - Anfänger-Themen 1
F Regex für Inlineformatierungen Java Basics - Anfänger-Themen 12
W Einfachen, ein beliebiges Zeichen oft erkennenden Regex Parser selber schreiben - wie vorgehen? Java Basics - Anfänger-Themen 12
O Regex Java Basics - Anfänger-Themen 2
F Switch Case Problem mit Regex lösen? Java Basics - Anfänger-Themen 6
H regex-Problem Java Basics - Anfänger-Themen 2
F Ist das ein korrekter Regex-Ausdruck? Java Basics - Anfänger-Themen 12
M Zahlenbereich mit RegEx Java Basics - Anfänger-Themen 3
B Hilfe bei Regex - Erstellung Java Basics - Anfänger-Themen 5
D regex Aufbau Frage Java Basics - Anfänger-Themen 4
W RegEx Matcher + Pattern und Emails Java Basics - Anfänger-Themen 8
R Rechenzeichen als regex Java Basics - Anfänger-Themen 10
S Ich verstehe die RegEx Tabelle von Javadoc nicht so ganz Java Basics - Anfänger-Themen 3
C Erste Schritte Regex - Datei einlesen und splitten Java Basics - Anfänger-Themen 4
F RegEx Problem Java Basics - Anfänger-Themen 8
F Regex Hilfe Java Basics - Anfänger-Themen 14
G String nach Contains/Regex Java Basics - Anfänger-Themen 2
U RegEx alle Kommas bei den Zahlen in Punkt umwandeln Java Basics - Anfänger-Themen 3
K RegEx - Multiple Line Java Basics - Anfänger-Themen 3
S Regex Pattern Java Basics - Anfänger-Themen 3
K Regex: illegal character range Java Basics - Anfänger-Themen 4
F RegEX Hilfe Java Basics - Anfänger-Themen 8
U Regex für kommaseparierte Zahlen Java Basics - Anfänger-Themen 1
K Operatoren Regex für 10er Zahlen Java Basics - Anfänger-Themen 8
V Java Regex richtig parsen Java Basics - Anfänger-Themen 2
E Brauche eine Antwort zum Thema RegEx ( Alternative zur Lösung auch gesucht ) Java Basics - Anfänger-Themen 5
N mein RegEx Java Basics - Anfänger-Themen 2
C Lösung für RegEx in Java gesucht Java Basics - Anfänger-Themen 2
B Java - Reguläre Ausdrücke - RegEx oder Regular Expressions - Eckige Klammern Java Basics - Anfänger-Themen 2
M Regex/matcher Java Basics - Anfänger-Themen 2
T Methoden String.matches() - Regex Java Basics - Anfänger-Themen 2
truesoul Regex für www Java Basics - Anfänger-Themen 0
N Methoden Straßennamen und Hausnummer - RegEx Java Basics - Anfänger-Themen 19
W Erste Schritte Regex negieren Java Basics - Anfänger-Themen 3
W String match mit Wildcard ODER Regex Java Basics - Anfänger-Themen 1
E useDelimiter-Anwednung / Regex Java Basics - Anfänger-Themen 2
C java regex Java Basics - Anfänger-Themen 2
C Regex zum matchen ausserhalb von Tags Java Basics - Anfänger-Themen 3
O Regex zwischenspeichern Java Basics - Anfänger-Themen 6
O Regex Java Basics - Anfänger-Themen 5
R Einfacher Regex Java Basics - Anfänger-Themen 3
V RegEx Java Basics - Anfänger-Themen 15
HoloYoitsu Datentypen replaceAll() mit regex? Java Basics - Anfänger-Themen 5
G regex Verständnis Problem Java Basics - Anfänger-Themen 3
G verwendung von regex Java Basics - Anfänger-Themen 3
X Regex splitten Java Basics - Anfänger-Themen 5
T Regex Problem Java Basics - Anfänger-Themen 4
B String nach regex überprüfen Java Basics - Anfänger-Themen 6
J Regex Ausdrücke im Array - Wieso werden sie nicht erkannt? Java Basics - Anfänger-Themen 4
N Regex Java Basics - Anfänger-Themen 4
F String.replaceAll() funktioniert nicht richtig oder habe ich den falschen Regex?? Java Basics - Anfänger-Themen 3
J Regex mit Return Java Basics - Anfänger-Themen 3
I Rechenoperatoren mit Regex splitten Java Basics - Anfänger-Themen 12
F Methoden replaceAll (regex) HTML Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben