Hallo.
Deine ursprüngliche Frage scheint mir noch nicht beantwortet zu sein.
Wie prüfe ich, ob ein buchstabe in einem string mehrmals vorkommt? Also sowohl in folge, als auch irgendwo anders im string.
Der reguläre Ausdruck des folgenden Beispiels dürfte genau das tun, was du ursprünglich wolltest:
my $str = 'ABCDCEF'; # C ist doppelt
if($str =~ /(\w).*?\1/) {
print "Der Buchstabe $1 kommt doppelt vor.";
}
else {
print "Keiner der Buchstaben kommt doppelt vor.";
}
Teilzeichenketten, die durch runde Klammern innerhalb des regulären Ausdrucks zwischengespeichert werden, sind nicht nur über die Variablen $1
, $2
, $3
, usw. verfügbar, nachdem die RegEx ausgeführt wurde. Vielmehr können diese zwischengespeicherten Werte bereits in der RegEx durch die Verwendung der Maskierungen \1
, \2
, \3
, usw. verwendet werden.
Schöne Grüße.