有人能用perl解释一下tr/d修饰符吗?
我在Perl教程中找到了这个示例,但无法理解输出。教程说: /d修饰符删除与SEARCHLIST匹配的字符,这些字符在REPLACEMENTLIST中没有相应的条目 但我无法理解这是如何在示例中实现的 有人能解释一下输出是如何产生的吗 脚本:有人能用perl解释一下tr/d修饰符吗?,perl,tr,Perl,Tr,我在Perl教程中找到了这个示例,但无法理解输出。教程说: /d修饰符删除与SEARCHLIST匹配的字符,这些字符在REPLACEMENTLIST中没有相应的条目 但我无法理解这是如何在示例中实现的 有人能解释一下输出是如何产生的吗 脚本: $string = 'the cat sat on the mat.'; $string =~ tr/a-z/b/d; print "[$string]\n"; 输出: [ b b b.] (方括号表示字符串的开始和结束,仅此而已。)由于替换列表中
$string = 'the cat sat on the mat.';
$string =~ tr/a-z/b/d;
print "[$string]\n";
输出:
[ b b b.]
(方括号表示字符串的开始和结束,仅此而已。)由于替换列表中只有一个字符(
b
),因此只有搜索列表中的第一个字符(a
)将替换为b
)。搜索列表中的其余字符(b-z
)将被删除
因此,将a
s替换为b
s,将b-z
字母替换为零
catsat在mat上
变成
b.
(句子中只有三个a
s,空格和点被保留,因为它们不是搜索列表的一部分)。那是a,与regex无关;)多么奇怪-重复的问题使用了非常相同的示例文本。非常清楚。谢谢。顺便问一句,有人知道为什么我的问题从SO得到了a-1吗?是因为“regex”标签不合适吗?(如果是的话,很抱歉。)@leo,-1来自一个人,而不是它本身。要么他们不喜欢,要么他们被regex
标签所迷惑,要么他们不喜欢你的初始版本的格式,要么他们认为你没有花足够的精力在提问之前自己理解这一点。