Regulärer Ausdruck

Status
Nicht offen für weitere Antworten.

knowledge

Bekanntes Mitglied
Hi,

ich will aus einem String alle Zeichen bis auf # gefolgt von Zahlen entfernen. Also z.B.

String s = "(+'#33("; -> daraus nur #33. Jetzt hab ich folgendes Pattern:

String pattern ="#[0-9]+";

Ich dachte mir ich ersetze alles, außer halt was dem Pattern entspricht mit ""
Mit replaceAll(pattern,""); würde ich ja jetzt alles ersetzen, was dem Pattern entspricht. Habe schon versucht zu negieren,

String pattern ="[^#[0-9]+]"; Damit das Pattern gegen alles matcht, was NICHT Raute gefolgt von Zahlen ist. Klappt aber auch nicht so richtig. Hat wer ne Idee?
 
S

SlaterB

Gast
durchlaufe eine Matcher-find()-Schleife mit dem positiven Pattern,
sammle alle group()-Elemente in einem separaten StringBuilder,
der Rest wird dann automatisch nicht übernommen
 

0x7F800000

Top Contributor
[HIGHLIGHT="Java"]
String s="37914z34zh134h##g13u#g41i##u3h4i#1732he1h3e#134341244#ghg34k#3b1k31bz3e#/%#$%§%/%)#123";
Matcher m=Pattern.compile("#[0-9]+").matcher(s);
String extracted="";
while(m.find()) extracted+=(m.group()+"\n");
System.out.println(extracted);
[/HIGHLIGHT]
selbstverständlich sollte man eigentlich einen StringBuilder verwenden, blah blah blah...
 

knowledge

Bekanntes Mitglied
ok, danke für die antworten. Ich dachte es ist schon möglich den regulären Ausdruck für replaceAll so zu formulieren, dass alles was nicht dem Pattern entspricht entfernt wird. Schade.
 

0x7F800000

Top Contributor
irgendwie ist es sicherlich möglich, aber dann ist der regex wahrscheinlich fünf mal so breit und völlig unverständlich.
 

knowledge

Bekanntes Mitglied
nochmals danke,

aber kann man nicht sowas wie negation formulieren?

d.h. wenn mein suchpattern s = "#[0-9]+"; dann müsste es doch ne einfache Möglichkeit geben dieses zu negieren. :-(
 

0x7F800000

Top Contributor
Weißt du wie dieses Regex funktioniert? Falls nicht, dann schau mal bei gelegenheit bei irgendeiner Vorlesung zur Theoretischen Informatik vorbei, oder lies dir ein Buch drüber durch. So einen Ausdruck in eine auswertbare Form umzuwandeln ist schon recht frickelig, so etwas zu negieren wäre noch frickeliger, und würde das ganze nur ohne guten Grund lahmer und fehleranfälliger machen. Tipp die drei zeilen doch einfach ein, kostet doch nichts... Besser 3 zeilen einfachen code, als eine Zeile mit einem 80 Zeichen langen Regex.
 

fjord

Bekanntes Mitglied
[highlight=java]s.replaceAll("(?:[^#]|#(?!\\d))*(#\\d+)?", "$1")[/highlight]
habs allerdings nur mit Andreys Beispiel getestet.
Und ich würde auch die Variante mit dem StringBuilder nehmen, weil da deutlich klarer ist was der Code macht.
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Einfacher regulärer Ausdruck (RegEx) für E-Mail-Adressen Java Basics - Anfänger-Themen 2
B Regulärer Ausdruck Java Basics - Anfänger-Themen 12
D Regulärer Ausdruck Java Basics - Anfänger-Themen 8
B Regulärer Ausdruck Java Basics - Anfänger-Themen 3
C Regulärer Ausdruck matched nicht Java Basics - Anfänger-Themen 2
B Regulärer Ausdruck gesucht Java Basics - Anfänger-Themen 6
M regulärer Ausdruck funktioniert nicht Java Basics - Anfänger-Themen 6
X Regulärer Ausdruck für einen FileNameFilter Java Basics - Anfänger-Themen 2
S regulärer Ausdruck HTML Java Basics - Anfänger-Themen 5
turmaline Ein regulärer Ausdruck für HTML-Sonderzeichen Java Basics - Anfänger-Themen 3
B regulärer Ausdruck mit Metazeichen Java Basics - Anfänger-Themen 4
D regulärer Ausdruck: ^ $ Java Basics - Anfänger-Themen 6
F Regulärer Ausdruck warum false ? Java Basics - Anfänger-Themen 3
O Regulärer Ausdruck gesucht Java Basics - Anfänger-Themen 2
S Regulärer Ausdruck - alles was keine Zahl ist entfernen Java Basics - Anfänger-Themen 2
S regulärer ausdruck zum zählen eines wortes Java Basics - Anfänger-Themen 4
L Regulärer Ausdruck Java Basics - Anfänger-Themen 2
M regulärer Ausdruck Java Basics - Anfänger-Themen 3
X Regulärer Ausdruck Java Basics - Anfänger-Themen 6
E regulärer Ausdruck -> wo ist der Fehler Java Basics - Anfänger-Themen 9
G regulärer Ausdruck alles was zwischen ' ' steht Java Basics - Anfänger-Themen 4
P Zeile als regulärer Ausdruck Java Basics - Anfänger-Themen 5
G Regulärer Ausdruck: gefunden und gleichzeitig nicht gefunden Java Basics - Anfänger-Themen 5
M regulärer Ausdruck zum Parsen einer E-Mail Signatur Java Basics - Anfänger-Themen 16
T Regulärer Ausdruck Java Basics - Anfänger-Themen 4
G regulärer ausdruck zur überprüfung von ip-adresse? Java Basics - Anfänger-Themen 13
T Regulärer Ausruck mit replace Java Basics - Anfänger-Themen 3
W Suche nach strings zwischen eckigen Klammern mittels regulärer Ausdrücke Java Basics - Anfänger-Themen 3
W Reguläre Ausdruck Java Basics - Anfänger-Themen 6
hebein PDF Ausdruck auf Drucker - Probleme mit Format Java Basics - Anfänger-Themen 17
K Warum zeigt dieser reguläre Ausdruck true an? Java Basics - Anfänger-Themen 1
berserkerdq2 Wie würde man einen regulären Ausdruck in Java schreiben, der prüft, dass zwei bestimtme Zahlen nicht nebeneinadner sind? Java Basics - Anfänger-Themen 3
KogoroMori21 Boolscher Ausdruck Java Basics - Anfänger-Themen 15
C Ausdruck Java Basics - Anfänger-Themen 4
E Boolescher Ausdruck Java Basics - Anfänger-Themen 1
M Regex-Ausdruck: Alle Zeichen bis auf ein bestimmtes erlauben (p{L}) Java Basics - Anfänger-Themen 5
G Warum ist hier ein Lamda-Ausdruck möglich Java Basics - Anfänger-Themen 2
O Lambda Ausdruck mit Wildcard einschränken Java Basics - Anfänger-Themen 5
F Ist das ein korrekter Regex-Ausdruck? Java Basics - Anfänger-Themen 12
B Interface Java Lambda Ausdruck. Java Basics - Anfänger-Themen 11
G Boolschen Ausdruck true machen Java Basics - Anfänger-Themen 2
F Ausdruck wirft unerwarteten Error Java Basics - Anfänger-Themen 2
K Regulären Ausdruck in Java abbilden Java Basics - Anfänger-Themen 4
M Lambda - Ausdruck zu Beschreibung erstellen Java Basics - Anfänger-Themen 7
D Java Ausdruck erzeugen / Formular Java Basics - Anfänger-Themen 4
B Boolscher Ausdruck für mich unverständlich Java Basics - Anfänger-Themen 7
A regulären Ausdruck mit Hilfe der Klasse Scanner in einem String finden Java Basics - Anfänger-Themen 2
J Frage zu bestimmtem Ausdruck Java Basics - Anfänger-Themen 2
G Lambda Ausdruck: Welche Methode ist die Richtige? Java Basics - Anfänger-Themen 1
C Auswertung Ausdruck mit Punknotation + Objekt als Parameter Java Basics - Anfänger-Themen 3
M Arithemtischer Ausdruck unklar Java Basics - Anfänger-Themen 2
A Lässt sich dieser Ausdruck irgendwie einfacher schreiben? Java Basics - Anfänger-Themen 4
H Regulären Ausdruck automatisch erstellen Java Basics - Anfänger-Themen 5
T Erste Schritte Im arithm. Ausdruck Zeichen trennen? Java Basics - Anfänger-Themen 13
D Boolescher Ausdruck - Problem Java Basics - Anfänger-Themen 6
R Suche Regex Ausdruck für HTML Java Basics - Anfänger-Themen 11
E Hilfe bei einem Regulären Ausdruck Java Basics - Anfänger-Themen 7
S Einfaches Regulaerer Ausdruck Problem Java Basics - Anfänger-Themen 7
3 3. Element mit regulären Ausdruck suchen Java Basics - Anfänger-Themen 12
M regex-Ausdruck irgendein Buchstabe 1 mal Java Basics - Anfänger-Themen 8
S Was bedeutet dieser ausdruck? Java Basics - Anfänger-Themen 9
S String nach Ausdruck durchsuchen und Folgeattribut ausgeben Java Basics - Anfänger-Themen 3
H Ausdruck vereinfachen Java Basics - Anfänger-Themen 8
J Datentypen String splitten ohne festen Ausdruck Java Basics - Anfänger-Themen 8
H while schleife ohne ausdruck Java Basics - Anfänger-Themen 7
H Datei durchsuchen mit Regex-Ausdruck Java Basics - Anfänger-Themen 14
O Gibt es dafür einen regulären Ausdruck? Java Basics - Anfänger-Themen 9
O RegEx-Ausdruck gesucht Java Basics - Anfänger-Themen 2
C bedingten ausdruck zu if-anweisung Java Basics - Anfänger-Themen 3
O Mal wieder ein Regex-Ausdruck gesucht! Java Basics - Anfänger-Themen 5
R Regulären Ausdruck geht nicht Java Basics - Anfänger-Themen 2
J Bitte um Erklärung für einen Java-Ausdruck Java Basics - Anfänger-Themen 8
T Wie sieht ein '.' im regulären Ausdruck aus? Java Basics - Anfänger-Themen 2
G Wie erstellt man komplexen regulären Ausdruck Java Basics - Anfänger-Themen 5
G Boolscher Ausdruck Java Basics - Anfänger-Themen 11
R Reguläre Ausdruck definieren Java Basics - Anfänger-Themen 3
G Substrings in regulärem Ausdruck Java Basics - Anfänger-Themen 2
F Boolescher Ausdruck (String) in boolean konvertieren Java Basics - Anfänger-Themen 5
F Der "super" Ausdruck Java Basics - Anfänger-Themen 4
S Ausdruck zur Laufzeit auswerten Java Basics - Anfänger-Themen 10
G Was zum Teufel ist denn so ein Ausdruck"variabel : vari Java Basics - Anfänger-Themen 8
M Scanner soll nach einem Ausdruck splitten Java Basics - Anfänger-Themen 2
R Ausdruck Java Basics - Anfänger-Themen 2
J Was sagt mir dieser Ausdruck? Java Basics - Anfänger-Themen 9
S Ausdruck? Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben