Regular Expr

Status
Nicht offen für weitere Antworten.

MQue

Top Contributor
Hallo,

könnte mir jemand auf die Schnelle schreiben, wie ich RegExp ausdrücken kann, damit nur Strings durchkommen, die so aussehen:

Code:
nur Zahlen - mein String - nur Zahlen  // mein String kann alles sein und auch beleibig lang

vielen Dank!!!
 

MQue

Top Contributor
und wie gebe ich das an:

Pattern.matches("\d*meinString\d*", meinString); ??????

Vielen Dank,
 

0x7F800000

Top Contributor
und wie gebe ich das an:
Pattern.matches("\d*meinString\d*", meinString);
Naja, wenn schon, dann
[highlight=Java]
Pattern.matches("\\d*meinString\\d*", meinString);
[/highlight]
denn "\d" ist ein metazeichen für regex, für gewöhnliche Srings ist aber "\" auch ein metazeichen, daher muss man im String "\\d" hinschreiben, damit beim regex "\d" ankommt... \ wird eben einmal in Strings, und einmal in regex zum escapen benutzt, da muss man halt dran denken und alles doppeltescapen...
 
B

bygones

Gast
hä.. ist der String fest ? also immer der selbe oder irgendeinString ?

@habi55 der Regex hilft nicht viel da .* alles matcht (egal ob zahl oder buchstabe)

meinst du sowas ?
Code:
        String s = "meinString";
        Pattern pattern = Pattern.compile("\\d*" + s + "\\d*");
        System.out.println(pattern.matcher(s).find());
 

mvitz

Top Contributor
hä.. ist der String fest ? also immer der selbe oder irgendeinString ?

@habi55 der Regex hilft nicht viel da .* alles matcht (egal ob zahl oder buchstabe)

meinst du sowas ?
Code:
        String s = "meinString";
        Pattern pattern = Pattern.compile("\\d*" + s + "\\d*");
        System.out.println(pattern.matcher(s).find());

Er hat doch nicht gesagt, dass in seinem String sich nur Buchstaben befinden dürfen.
Soweit ich ihn verstanden habe bekommt er einen String der z.B. so aussieht:

3536545 - beliebiger132 Text - 456456

und möchte gucken, ob er dem obigen Schema

Zahl - text - Zahl

genügt.

Java:
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Regex1 {

    public static void main(String[] args) {
        String text = "3536545 - beliebiger132 Text - 456456";
        Pattern p = Pattern.compile("\\d* - .* - \\d*");
        Matcher m = p.matcher(text);
        System.out.println(m.matches());
    }
}

Ergibt true, was nach meine Annahme auch sein müsste.
 

0x7F800000

Top Contributor
Ergibt true, was nach meine Annahme auch sein müsste.
...wie bei jedem anderen String in diesem Universum auch^^ :lol:

edit: Nicht ganz korrekt...
zumindest wenn man die " - " zwischendrin weglässt, dann stimmt's. Aus dem letzten Beitrag des OP's vermute ich eher, dass " - " nicht wirklich in den Regex reingehört, sondern nur der "Übersicht" (*hust*) im ersten Beitrag dienen sollte... ;)
Also, wenn man " - " weglässt, dann matcht dein Regex einfach alles :D
 
Zuletzt bearbeitet:

mvitz

Top Contributor
...wie bei jedem anderen String in diesem Universum auch^^ :lol:

edit: Nicht ganz korrekt...
zumindest wenn man die " - " zwischendrin weglässt, dann stimmt's. Aus dem letzten Beitrag des OP's vermute ich eher, dass " - " nicht wirklich in den Regex reingehört, sondern nur der "Übersicht" (*hust*) im ersten Beitrag dienen sollte... ;)
Also, wenn man " - " weglässt, dann matcht dein Regex einfach alles :D

Ok ^^ btw. wenn man am Schluss (nach dem " - " nen Buchstaben in die Zahl mit einbaut, dann matcht es auch nicht). Ich würde sagen, der OP hat sein Problem nicht 100% spezifiziert.
 

Wildcard

Top Contributor
Je nachdem was er/sie haben möchte.
Für einen beliebigen String in der Mitte:
Code:
(\d+).*?(\d+)
ansonsten
Code:
(\d+)derString(\d+)
auf 'derString' wendet man dann vorher Pattern#quote an
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben