perl で以下を使用しようとしていますが、機能していないようです。文字列文字を補間せずに正確な sring を一致させるにはどうすればよいですか? 引用符と\Q、\Eを試しましたが、何も機能しません
$string=~ s/\`date +%s\`/anotherthinghere/;
わかりやすくするために、一致させようとしている文字列は
`date +%s`
date +%s
ああ、それが変数にあることを忘れていました。
\Q
..\E
指定子を誤用したに違いありません。
あなたの言うことから、あなたが持っていると思います`date +%s`
、そしてバッククォートはマークダウンによって食べられました
その場合、このコードはあなたが望むことをします。変数の補間は、特殊文字の解釈の前に、最初に行われます
use strict;
use warnings;
my $string = 'xxx `date +%s` yyy';
my $pattern = '`date +%s`';
$string =~ s/\Q$pattern/anotherthinghere/;
print $string;
出力
xxx anotherthinghere yyy
あなたの質問をよく理解できたら、次のことはどうですか。
my $var = q/`date +%s`/;
my $string = q/foo `date +%s` bar/;
$string =~ s/\Q$var/another/;
say $string;
出力:
foo another bar