/ / Wie kann ich einen Teil eines Perl-Negativs für reguläre Ausdrücke optional machen? - Perl

Wie kann ich einen Teil eines regulären Perl-Ausdrucks optional machen? - Perl

Ich will Spiel

my @array = ( "Tree" , "JoeTree","Joe");

foreach (@array ) {
if ( $_ =~ /^(Joe)[^Tree]/gi) {
print "matched $_";
}
}

Es passt nur zu Joe. es sollte zu nichts anderem passen

Antworten:

2 für die Antwort № 1

Nur "Joe" als ganzen Text suchen?

/^(Joe)$/

oder Match "Joe" als das Wort allein?

/b(Joe)b/

oder Spiel "Joe" nicht gefolgt von "Tree"?

/^(Joe)(?!Tree)/

6 für die Antwort № 2

Hierfür benötigen Sie keine regulären Ausdrücke:

if ($_ eq "Joe") {
print "matched $_";
}