Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.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
有人能用perl解释一下tr/d修饰符吗?_Perl_Tr - Fatal编程技术网

有人能用perl解释一下tr/d修饰符吗?

有人能用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.] (方括号表示字符串的开始和结束,仅此而已。)由于替换列表中

我在Perl教程中找到了这个示例,但无法理解输出。教程说:

/d修饰符删除与SEARCHLIST匹配的字符,这些字符在REPLACEMENTLIST中没有相应的条目

但我无法理解这是如何在示例中实现的

有人能解释一下输出是如何产生的吗

脚本:

$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
标签所迷惑,要么他们不喜欢你的初始版本的格式,要么他们认为你没有花足够的精力在提问之前自己理解这一点。