我在接受实习的采访中被问到这个问题,我建议的第一个解决方案是尝试使用正则表达式(我通常在采访中有点难过).像这样的东西
(?P<str>[a-zA-Z]+)(?P<n>[0-9]+)
我认为它会匹配字符串并将它们存储在变量“str”中,而将数字存储在变量“n”中.怎么样,我不确定.
所以它匹配“a1b2c3”类型的字符串,但这里的一个问题是它也匹配“a1b”类型的字符串.有谁能建议解决这个问题的解决方案?
另外,还有其他正则表达式可以解决这个问题吗?
怎么样:
while ($line =~ s/^([a-z]+)(\d+)//i) { print $1 x $2; }