Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.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中的正则表达式中使用chr函数?_Regex_Perl_Chr - Fatal编程技术网

Regex 如何在Perl中的正则表达式中使用chr函数?

Regex 如何在Perl中的正则表达式中使用chr函数?,regex,perl,chr,Regex,Perl,Chr,我有一个Perl脚本,它有一个字符串,在ASCII字符代码中可能包含字符146,也可能不包含字符146。我感兴趣的是在正则表达式中使用chr()函数来确定该字符串是否真的包含该字符。如果该字符在那里,我想用“'”字符替换它 这可能吗?如果没有,还有什么办法 这一个让我难堪。谢谢 您可以将变量替换为模式: $c = chr(146); $target =~ s/$c/'/go; # "o" means $c won't change so remember it 但通常您会通过将其转换为八进制或

我有一个Perl脚本,它有一个字符串,在ASCII字符代码中可能包含字符146,也可能不包含字符146。我感兴趣的是在正则表达式中使用chr()函数来确定该字符串是否真的包含该字符。如果该字符在那里,我想用“'”字符替换它

这可能吗?如果没有,还有什么办法


这一个让我难堪。谢谢

您可以将变量替换为模式:

$c = chr(146);
$target =~ s/$c/'/go; # "o" means $c won't change so remember it
但通常您会通过将其转换为八进制或十六进制将其指定为文字:

$target =~ s/\222/'/g; # octal
$target =~ s/\x92/'/g; # hex

这个标题有点误导人。这与在正则表达式中使用chr()无关,而是与在正则表达式中使用特殊字符有关。字符146不是ASCII。ASCII在127处停止。