0

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

这是字符串:“R 3”

R 可以是 R、G、B 或 Y。我想隔离该字母要放入变量 $color 中的任何内容。我试过这样做:

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

和这个:

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

有人可以给我一块骨头并告诉我组合是什么吗?将不胜感激。

4

1 回答 1

3

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

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

(如果您想要大写或小写颜色,请使用/gi而不是)/g

或者代替替换,您可以使用音译运算符

$color =~ tr/RGBY//cd;

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

$string = "R 3";
($color) = $string =~ /([RGBY])/;
于 2013-11-07T23:21:16.570 回答