Thread If-Abfrage über Wertebereich (11 answers)
Opened by HP-User at 2012-06-19 21:07

Linuxer
 2012-06-19 23:13
#159212 #159212
User since
2006-01-27
3872 Artikel
HausmeisterIn

user image
Wenn die Leerzeichen nicht im String vorkommen, lass sie aus der Regex raus.

Code (perl): (dl )
1
2
3
if ($string =~ /^KG\d{3}[JMA]$/) {
#...
}


\d{3} steht für drei aufeinanderfolgende Zeichen der Klasse "digit"; digit steht für die Ziffern 0 bis 9.

Wenn die drei Zeichen, die auf den String "KG" folgen, keine drei Ziffern sind, dann ergibt der Regex keinen Treffer.

Es gibt auch ein Perl-Modul, mit dem man sich Regex erklären lassen kann: CPAN:YAPE::Regex::Explain

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
host:prompt> perl -MYape::Regex::Explain -le " my $p = YAPE::Regex::Explain->new(qr{^KG\d{3}[JMA]$}); print $p->explain();" 
The regular expression:

(?-imsx:^KG\d{3}[JMA]$)

matches as follows:

NODE EXPLANATION
----------------------------------------------------------------------
(?-imsx: group, but do not capture (case-sensitive)
(with ^ and $ matching normally) (with . not
matching \n) (matching whitespace and #
normally):
----------------------------------------------------------------------
^ the beginning of the string
----------------------------------------------------------------------
KG 'KG'
----------------------------------------------------------------------
\d{3} digits (0-9) (3 times)
----------------------------------------------------------------------
[JMA] any character of: 'J', 'M', 'A'
----------------------------------------------------------------------
$ before an optional \n, and the end of the
string
----------------------------------------------------------------------
) end of grouping
----------------------------------------------------------------------
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread If-Abfrage über Wertebereich