我想转换一个字符串,以便所有数字子序列都包含在{
...}
对中。
例如:
input_string = "APPL[E]5XXXX"
output_string = "APPL[E]{5}XXXX"
例如,每个字符串可能包含一个或多个数字,BASIC76XXXXX98ZZZZ
并且输出应该是BASIC{76}XXXXX{98}zzzz
不确定这是否可能实现。任何帮助将不胜感激。
我想你正在寻找这样的东西:
$string =~ s/(\d+)/{$1}/g;
这将匹配任何连续的数字并将它们替换为$1
被大括号包围的第一个捕获的子字符串( - 与整个匹配一致)。这g
是为了确保所有事件都被替换。
这肯定是可能的。
您需要一个匹配数字的正则表达式,捕获数字,然后用一组包装的花括号替换匹配项。
my $input = 'APPL[E]5XXXX';
$input =~ s/(\d+)/{$1}/g;
\d+
匹配数字。()
捕获并存储在$1
.s///
是一个替换正则表达式。/g
最后的意思是“全球”,也就是对所有比赛都这样做。