【问题标题】:How to use the chr function inside a regular expression in Perl?如何在 Perl 的正则表达式中使用 chr 函数?
【发布时间】:2011-03-05 01:47:55
【问题描述】:

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

这可能吗?如果不是,还有什么方法可以做到这一点?

这个让我很难过。谢谢!

【问题讨论】:

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

标签: regex perl chr


【解决方案1】:

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

$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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-09
    • 2023-01-23
    • 2012-04-07
    • 1970-01-01
    • 2017-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多