Schrift
[thread]8161[/thread]

RegEx: wie oft wurde etwas gefunden



<< >> 2 Einträge, 1 Seite
pktm
 2006-07-12 14:04
#68068 #68068
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!

Ich habe eine Zeichenkette, die einige male den Backslash enthält.
Wie kann ich feststellen, wie oft der enthalten ist?
Ich kann zwar einen reguläen Ausruck in ein Array interpolieren und dann dessen Länge nehmen, aber ich möchte an dieser Stelle lieber unleserlichen Code der mir direkten Zugriff auf die Anzahl der Matches erlaubt.

Hier mal Beispielcode:
Code: (dl )
1
2
3
4
my $s = q~1\A\563\M\1\Y\Y\Y\A\N\N\N\N\(A)[N]\N\N\N\N\S3/P2\N~;
print $s =~ m/(\\)/g; # gibt 19mal \ aus
my @erg = $s =~ m/(\\)/g;
print "\nerg: " . scalar(@erg); # gibt erg: 19 aus


Grüße, pktm
http://www.intergastro-service.de (mein erstes CMS :) )
renee
 2006-07-12 14:12
#68069 #68069
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
#!/usr/bin/perl

use strict;
use warnings;

my $s = q~1\A\563\M\1\Y\Y\Y\A\N\N\N\N\(A)[N]\N\N\N\N\S3/P2\N~;
my $anz = $s =~ tr/\\//;

print $anz;


Edit: das geht aber nicht wenn Du z.B. \N suchen willst. Dann hilft

Code: (dl )
1
2
3
4
5
6
7
8
9
#!/usr/bin/perl

use strict;
use warnings;

my $s = q~1\A\563\M\1\Y\Y\Y\A\N\N\N\N\(A)[N]\N\N\N\N\S3/P2\N~;
my $anz = () = $s =~ m/(\\N)/g;

print $anz;
\n\n

<!--EDIT|renee|1152699415-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 2 Einträge, 1 Seite



View all threads created 2006-07-12 14:04.