Regex Sonderzeichen erkennen, optional

Gast #6312347
Lesenswert?

Hallo,

ich habe das folgendes Regex-Problem.

ich versuche ein Regex zu erstellen der beispielsweise 12444 und 88009 
aus folgenden Texten erkennt:

Textbeispiel1: =Z70+12444.099-K1255
Textbeipsiel2: ==U44=88009-P9183

Mein Regex bis jetzt: =?=([^\\s,]+)\\+(?<ModuleNr>[^\\s,]+)\\.([^\\s,]+)
Dieser Regex kann aber nur 11307 aus Beispieltext1 erkennen. Wie kann 
ich das zweite Sonderzeichen im Beispieltext2 optional machen und das 
dritte Sonderzeichen ist entweder = oder +. Also Regex was ich suche 
soll sowohl 12444 aus BeispielText1 als auch 88009 aus Beispieltext2 
erkennen.

Gruß
Gast #6312418
Lesenswert?

Flo schrieb:
> Textbeispiel1: =Z70+12444.099-K1255
> Textbeipsiel2: ==U44=88009-P9183

Leider sagst du nicht den Dialekt deiner Regex dazu, anyway hier in 
Perl:
1
$ cat r
2
=Z70+12444.099-K1255
3
==U44=88009-P9183
4

5
$ cat r.pl
6
#!/usr/pin/perl
7
if (m/^\W+    # at begin, non-word(s)
8
      \w+    # some words
9
      \W+    # non-words
10
      (\d+)  #digits
11
      /x) { print "$1\n"; }
12
$ cat r | perl -n r.pl
13
12444
14
88009
15
$

Die Erweiterun /x ist sehr zu emofehlen, um das zu dokumentieren.

leo

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren