加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何使用perl正则表达式避免在一个字符串中使用美元符号($)

发布时间:2020-12-15 22:01:23 所属栏目:大数据 来源:网络整理
导读:我试图使用perl正则表达式避免给定字符串中的几个特殊字符.除了美元符号外,所有字符均可正常工作.我试过以下: my %special_characters;$special_characters{"_"} = "_";$special_characters{"$"} = "$";$special_characters{"{"} = "{";$special_char
我试图使用perl正则表达式避免给定字符串中的几个特殊字符.除了美元符号外,所有字符均可正常工作.我试过以下:
my %special_characters;
$special_characters{"_"} = "_";
$special_characters{"$"} = "$";
$special_characters{"{"} = "{";
$special_characters{"}"} = "}";
$special_characters{"#"} = "#";
$special_characters{"%"} = "%";
$special_characters{"&"} = "&";

my $string = '$foobar';
foreach my $char (keys %special_characters) {
  $string =~ s/$char/$special_characters{$char}/g;
}
print $string;

解决方法

尝试这个:
my %special_characters;
$special_characters{"_"} = "_";
$special_characters{"$"} = "$";
$special_characters{"{"} = "{";
$special_characters{"}"} = "}";
$special_characters{"#"} = "#";
$special_characters{"%"} = "%";
$special_characters{"&"} = "&";

看起来很奇怪,对吧?您的正则表达式需要如下所示:

s/$/$/g

在正则表达式的第一部分,“$”需要转义,因为它是一个特殊的正则表达式字符,表示字符串的结尾.

正则表达式的第二部分被认为是“正常”字符串,其中“$”没有特殊含义.因此,反斜杠是一个真正的反斜杠,而在第一部分,它用于逃避美元符号.

此外,在变量定义中,您需要避免反斜杠和美元符号,因为它们在双引号字符串中都具有特殊含义.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读