Comment puis-je échapper des caractères spéciaux dans une chaîne que j'interpelle dans une regex Perl?
J'ai une chaîne de caractères pouvant contenir de caractères spéciaux comme: $
(
@
#,
etc.
J'ai besoin d'être en mesure d'effectuer des expressions régulières sur cette chaîne.
Maintenant si ma chaîne a un de ces caractères, la regex semble se briser, puisque ce sont les caractères réservés pour les regex.
Quelqu'un connait un bon sous-routine qui échapperaient à bien l'un de ces caractères, pour moi, de sorte que plus tard je pourrais faire quelque chose comme:
$p_id =~ /^$key/
source d'informationauteur goe
Vous devez vous connecter pour publier un commentaire.
À partir de votre description, il semble que vous avez à l'envers. Vous n'avez pas besoin d'échapper les caractères de la chaîne sont d'appariement ($p_id), vous devez vous échapper de votre match de chaîne '^$key'.
Donné:
Utilisation:
ou
L' \Q,\E paire de traiter tout ce qui entre comme littéral. En d'autres termes, vous ne voulez pas regarder pour le contenu de la variable $key, mais la chaîne de caractères "$key". Le premier exemple simplement s'échappe de l' $.