Thread Negierte Klasse in Regex? (5 answers)
Opened by GwenDragon at 2024-12-21 14:57

haj
 2024-12-22 11:31
#196775 #196775
User since
2015-01-07
560 Artikel
BenutzerIn

user image
Perl kann Mengenoperationen auf Zeichenklassen (seit 5.18, nicht-experimentell seit 5.36). Wenn Du also zum Beispiel \w finden willst, aber nicht die Zeichen i bis n, dann schreibst Du:
Code: (dl )
/((?[ \w & ! [in] ])+)/

Komplettbeispiel:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/perl
use warnings;
use 5.036;

my $RE = qr/((?[ \w & ! [in] ])+)/;

for my $data (<DATA>) {
        my $catch;
        say "$catch Match!" if ($catch) = $data =~ $RE; 
}
__DATA__
abcdefghijklmnopqrstuvwxyz
in words

Das ergibt:
Code: (dl )
1
2
abcdefgh Match!
words Match!

View full thread Negierte Klasse in Regex?