我想用数字替换字符串特定的字符。
假设我有这样的格式字符串"B######"
,因此它有一个“字母”和6个“#”字符。我需要首先弄清楚它包含多少“#”,并根据这个数字生成随机令牌
Session::Token->new(alphabet => ['0'..'9'], length => $length_from_format_string);
然后,我需要用生成的数字替换#..但是...
格式字符串也可以是B##CDE###1
所以它仍然有6“#”所以生成的数字必须按照格式划分:(所有这些应该尽可能有效
感谢您的提示
答案 0 :(得分:5)
如果使用e
标志,正则表达式(在perl中)可以嵌入函数。添加g
修饰符将多次执行此操作。
所以:
my $string = "B##CDE###1";
$string =~ s/\#/int rand(10)/ge;
print $string;