$text_to_search = "example text with [foo] and more";
$search_string = "[foo]";
if($text_to_search =~ m/$search_string/) print "wee";
Bitte obigen Code beachten. Aus irgendeinem Grund möchte ich den Text "[foo]" in der Variablen $ text_to_search finden und "wee" ausdrucken, wenn ich ihn finde. Um dies zu tun, müsste ich sicherstellen, dass [und] durch [und] ersetzt werden, damit Perl sie als Zeichen statt als Operatoren behandelt.Perl regulärer Ausdruck (Variable als Suchzeichenfolge mit Perl-Operator-Zeichen verwenden)
Frage: Wie kann ich dies tun, ohne vorher [
und ]
mit ersetzen mit \[
und \]
einen s///
Ausdruck verwenden?
würde ich in die Gewohnheit, die qr // konstruieren für reguläre Ausdrücke und Flucht spezielle Regex Zeichen der Verwendung erhalten sagen, wenn wörtliche benötigt wird. QuoteMeta wird ALLE speziellen Regex-Zeichen angeben. Wenn Sie nur eine literale Zeichenfolge in einer anderen suchen möchten, verwenden Sie stattdessen index(). – sln