Perl:使用正则表达式隔离字符

时间:2013-11-07 23:19:22

标签: regex perl

很抱歉问这么简单的问题,但是我真的很喜欢正则表达式而且我现在已经在网上搜索了大约45分钟。

这是字符串:“R 3”

R可以是R,G,B或Y. 我想要将那些字母放在变量$ color中。 我试过这样做:

$color = "R 3";
$color =~ s/![rgby]/[rgby]/g;

而且:

$color = "R 3";
$color =~ s/[rgby]/g;

有人可以请我一块骨头告诉我这个组合会是什么吗?非常感谢。

1 个答案:

答案 0 :(得分:3)

您想要替换以删除不是 R,G,B或Y的任何内容:

$color = "R 3";
$color =~ s/[^RGBY]//g;

(如果您想要大写或小写颜色,请使用/gi代替/g

或代替替代,您可以使用transliteration operator

$color =~ tr/RGBY//cd;

或者你可以只提取你想要的单个字符,并保持原始字符串不变:

$string = "R 3";
($color) = $string =~ /([RGBY])/;