如何用数字替换字符串中的特定字符

时间:2015-05-26 14:54:56

标签: regex perl parsing replace

我想用数字替换字符串特定的字符。

假设我有这样的格式字符串"B######",因此它有一个“字母”和6个“#”字符。我需要首先弄清楚它包含多少“#”,并根据这个数字生成随机令牌

Session::Token->new(alphabet => ['0'..'9'], length => $length_from_format_string);

然后,我需要用生成的数字替换#..但是...

格式字符串也可以是B##CDE###1所以它仍然有6“#”所以生成的数字必须按照格式划分:(所有这些应该尽可能有效

感谢您的提示

1 个答案:

答案 0 :(得分:5)

如果使用e标志,正则表达式(在perl中)可以嵌入函数。添加g修饰符将多次执行此操作。

所以:

my $string = "B##CDE###1";
$string =~ s/\#/int rand(10)/ge;
print $string;