Forum: PC-Programmierung suche regex pattern um diesen String zu erkennen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von regex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo;
kann mir jdm helfen das richtige regex pattern fuer diesen String zu 
finden?
p[zahl].b[zahl].val
wobei zahl von 0-20 erlaubt ist.
Danke

von Udo S. (urschmitt)


Bewertung
0 lesenswert
nicht lesenswert
Warum schaust du nicht einfach wie es geht, dann weisst du es beim 
nächsten Mal.
Oder willst du jedes Mal wenn du so ein Problem hast hier im Forum 
nachfragen?

Da kannst du es testen:
https://regex101.com/
Unten rechts ist eine Kurzreferenz

Hier ein Tutorial:
https://www.regular-expressions.info/tutorial.html

von 🐧 DPA 🐧 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
/p\[[12]?[0-9]\].b\[[12]?[0-9]\].val/

von regex (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Weil ich es versucht habe aber nicht hinbekommen im speziellen die 
eckigen Klammern

von Joachim S. (oyo)


Bewertung
0 lesenswert
nicht lesenswert
Probier's mal mit
p(1?[0-9]|20)\.b(1?[0-9]|20)\.val
Wobei die Lösung mglw. auch darauf ankommt, in welcher Umgebung Du den 
Ausdruck brauchst.

von Joachim S. (oyo)


Bewertung
0 lesenswert
nicht lesenswert
🐧 DPA 🐧 schrieb:
>
> /p\[[12]?[0-9]\].b\[[12]?[0-9]\].val/
> 

Ungefähr das war auch mein erster Gedanke, aber dann wäre ja bspw. auch 
der Wert 25 zulässig.

von Udo S. (urschmitt)


Bewertung
0 lesenswert
nicht lesenswert
regex schrieb:
> Weil ich es versucht habe aber nicht hinbekommen im speziellen die
> eckigen Klammern

Dann zeige deinen Versuch, darauf kann man aufbauen.
Fange klein an und teste es schritt für schritt
Eckige Klammern muss man "escapen" um ein '[' zu erkennen musst du '\[' 
schreiben.
Abhängig davon in welcher Umgebung du bist musst du aber das "Escape" 
Zeichen "Backslash" auch nochmal escapen. Zum Beispiel in C# oder Java.
Dann sähe es so aus: "\\["

von Wer (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Joachim S. schrieb:
> dann wäre ja bspw. auch der Wert 25 zulässig.

Lesen: https://regular-expressions.mobi/numericranges.html?wlr=1

von Imonbln (Gast)


Bewertung
0 lesenswert
nicht lesenswert
regex schrieb:
> wobei zahl von 0-20 erlaubt ist.
> Danke

muss der teil in der Regex geprüft werden, eine Regex die beliebige 
Zahlen findet ist viel leichter zu schreiben und ob die gefundene Zahl 
kleiner 20 ist lässt sich  Verhältnismäßig leicht rausfinden wenn man 
die entsprechende match group in ein int umwandelt.

von M. H. (bambel2)


Bewertung
1 lesenswert
nicht lesenswert
Als erstes muss man wissen, welches "Regex" du haben willst. 
Verschiedene Regextools sprechen teils verschiedene Regex-Syntax.


Eine gute Webseite zum Überprüfen der Regexes ist: https://regex101.com/
Damit spiele ich immer bei komplizierteren Ausdrücken.

Deine Anforderung kann in PCRE regex somit folglich abgebildet werden:
p([1]?[0-9]|20)\.b([1]?[0-9]|20)\.val

Du kannst es dir hier ansehen: https://regex101.com/r/mqMUkw/1/
Da wird auch aufgeschlüsselt, wie die Regex funktioniert.

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.