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