RegEx-Frage, Groß-/Kleinschreibung

Status
Nicht offen für weitere Antworten.

Daniel_L

Bekanntes Mitglied
Hallo,

ich habe folgenden regulären Ausdruck:
Code:
dummy = dummy.replaceAll("(?i)"+st+"(?![^<>]*>)", "<span class=\"hs\">$0</span>");

In der Variable st ist der Suchbegriff. Ich habe eine HTML-Seite, und der Suchebegriff st soll nicht innerhalb von HTML-Tags ersetzt werden, das soll durch "(?![^<>]*>)" erreicht werden.

Wenn ich nun bspw. "in" als Suchbegriff (st) habe, werden die ersten beiden Buchstaben des Wortes "Interessant" mit dem span-Tag umschlossen. Habe ich jedoch "int" als Suchbegriff, passiert nichts. Wenn ich wiederum "Int" (mit großen i) eingebe, werden die ersten drei Buchstaben von "Interessant" mit span-Tag umschlossen.

Meine Frage: Wieso nicht bei klein geschriebenem i? Und wieso ja, wenn ich "in" als Suchbegriff habe, dann aber nicht mehr, wenn ich "int" habe?

Leider kenn ich mich nicht ganz so gut mit RegEx aus, als dass ich hier den Fehler finde...

Gruß
Daniel
 
S

SlaterB

Gast
hast du Beispielcode dafür?
bei mir:
Code:
public class Test
{
 
    public static void main(String[] args)
        throws Exception
    {
        String dummy = "Interessant";
        String st = "int";
        dummy = dummy.replaceAll("(?i)" + st + "(?![^<>]*>)", "<span class=\"hs\">$0</span>");
        System.out.println(dummy);
    }
}
 
->
<span class="hs">Int</span>eressant
vielleicht ist dein st doch nciht genau 'int'?

bei i klappts auch,
warum hier Groß-/ Kleinschreibung ignoriert wird, kann ich aber nicht sagen

edit:
ohne dass (?i) am Anfang klappts weniger mit groß/ klein, das hat wohl Auswirkung ;)
 
Zuletzt bearbeitet von einem Moderator:

Daniel_L

Bekanntes Mitglied
Ah, ok. Ich habe den Fehler gefunden.

Code:
            String[] findterms = null;
            try {
                // create a pattern from the first search term. if it fails, go on
                // to the catch-block, else contiue here.
                Pattern p = Pattern.compile(st);
                // now we know we have a valid regular expression. we now want to
                // retrieve all matching groups
                Matcher m = p.matcher(dummy);
                // add each found string to a linked array-list
                List<String> founds = new ArrayList<String>();
                // iterate all matching groups and check whether these "search terms" have already
                // been added to the linked list. if not, add it,
                while (m.find()) if (!founds.contains(m.group())) founds.add(m.group());
                // finally, copy contenr of the array list to the findterms.
                findterms = founds.toArray(new String[founds.size()]);
            }
            catch (PatternSyntaxException e) {
                findterms = st;
            }

Hier frage ich ab, ob der Suchbegriff st ein Regulärer Ausdruck ist. "int" wird als regulärer Ausdruck angesehen. Ich dachte immer, die müssen mindestens mit Klammern oder so anfangen, und bin davon ausgegangen, dass eine "normale" Eingabe wie eben "int" beim Pattern.compile eine Exception auslöst, sodass dann als Suchbegriff der "reine" String genommen wird, und nicht der reguläre Ausdruck...

Ziel der ganzen Geschichte war, anhand des Suchbegriffs automatisch zu erkennen, ob es sich um einen "normalen" Begriff oder um einen regulären Ausdruck handelt, und dann entsprechend entweder den Suchbegriff beizubehalten, oder ein Array mit Suchbegriffen, die aufgrund des regulären Ausdrucks gefunden wurden, zu füllen...

Also muss ich irgendwie meine "automatische Erkennung" regulärer Ausdrücke überarbeiten.

Warum ich da nicht vorher drauf gekommen bin, mir mit System.out oder dem Debugger die Variablen-Werte anzugucken... Habe immer an der falschen Stelle debugged. ^^
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
sserio Split() -> Regex Frage. Java Basics - Anfänger-Themen 7
I String.split regex Frage Java Basics - Anfänger-Themen 2
D regex Aufbau Frage Java Basics - Anfänger-Themen 4
H Konkrete Regex Frage Java Basics - Anfänger-Themen 8
K Regex frage Java Basics - Anfänger-Themen 49
X regex frage (durchsuchen) Java Basics - Anfänger-Themen 2
S Regex Frage Java Basics - Anfänger-Themen 4
E Regex Frage Java Basics - Anfänger-Themen 2
G Frage zu replaceAll und regex Java Basics - Anfänger-Themen 3
G regex frage Java Basics - Anfänger-Themen 6
S Anfänger Regex Java Basics - Anfänger-Themen 4
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
X Wie kann man ein Regex erstellen, die 8-Bit-Binär-Zahlen darstellen. Java Basics - Anfänger-Themen 1
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
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
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
M Regex für bestimmte Wörter bzw. bestimmte Zeichen erstellen Java Basics - Anfänger-Themen 5
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
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

Ähnliche Java Themen

Neue Themen


Oben