Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 使用perl替换命令用反斜杠替换文本_Regex_Perl_Backslash - Fatal编程技术网

Regex 使用perl替换命令用反斜杠替换文本

Regex 使用perl替换命令用反斜杠替换文本,regex,perl,backslash,Regex,Perl,Backslash,所以我正在编写一个perl脚本,它对输入执行替换命令,并且输入将有反斜杠。因此,只需用新文本替换一些文本即可 例如,如果输入是 "\text" 我可能会输出 "newText" 请注意,斜杠已删除 下面是一些代码: $oldText = "\\Text"; while (<STDIN>) { $ln = $_; $ln2 = $_; $ln2 =~ s/\\Text/newText

所以我正在编写一个perl脚本,它对输入执行替换命令,并且输入将有反斜杠。因此,只需用新文本替换一些文本即可

例如,如果输入是

"\text"
我可能会输出

"newText"
请注意,斜杠已删除

下面是一些代码:

$oldText = "\\Text";

while (<STDIN>) {                
    $ln = $_;                     
    $ln2 = $_;
    $ln2 =~ s/\\Text/newText/;  
    $ln =~ s/$oldText/newText/;
}
print "$ln\n";
print "$ln2\n";
有人能解释为什么使用字符串而不是变量会将输出更改为我想要的吗?我知道\r限制了以下字符,这可能是问题的根源。但我不明白为什么使用变量会改变输出。将变量oldText更改为“\text”不会更改输出。

使用会告诉您:

Unrecognized escape \T passed through in regex; marked by <-- HERE in m/\T <-- HERE ext/ at ...
我会告诉你:

Unrecognized escape \T passed through in regex; marked by <-- HERE in m/\T <-- HERE ext/ at ...
$ln =~ s/\Q$oldText/newText/;