正则表达式 – 如何将字符串分组4?

我有字符串1234567890,我想将其格式化为1234 5678 90

我写这个正则表达式:

$str =~ s/(.{4})/$1 /g;

但对于这种情况12345678这不起作用.我最后得到了多余的空格:

>>1234 5678 <<

我试着用lookahead重写正则表达式:

s/((?:.{4})?=.)/$1 /g;

如何重写正则表达式来修复这种情况?

解决方法

只需使用解压缩

use strict;
use warnings 'all';

for ( qw/ 12345678 1234567890 / ) {
    printf ">>%s<<\n",join ' ',unpack '(A4)*';
}

产量

>>1234 5678<<
>>1234 5678 90<<

相关文章

正则替换html代码中img标签的src值在开发富文本信息在移动端...
正则表达式
AWK是一种处理文本文件的语言,是一个强大的文件分析工具。它...
正则表达式是特殊的字符序列,利用事先定义好的特定字符以及...
Python界一名小学生,热心分享编程学习。
收集整理每周优质开发者内容,包括、、等方面。每周五定期发...