正则表达式 – 如何拆分并保存到数组
发布时间:2020-12-14 05:49:41 所属栏目:百科 来源:网络整理
导读:^0806EA^0406F0^^^^^^EF07F7--^E3DC03--^EAFE02--^0406F0^^^FFE209^^^DFF107^^^F6F508^^^E4DE01^^^EF07F7--^E803E6-- 在上面的代码中,我想拆分这个^但问题是,这个十六进制数据具有相同的模式^. 我想要这样的结果: ^0806EA ^0406F0^^^^^ ^EF07F7-- ^E3DC03--
^0806EA^0406F0^^^^^^EF07F7--^E3DC03--^EAFE02-- ^0406F0^^^FFE209^^^DFF107^^^F6F508^^^E4DE01^^^EF07F7--^E803E6-- 在上面的代码中,我想拆分这个^但问题是,这个十六进制数据具有相同的模式^. 我想要这样的结果: ^0806EA ^0406F0^^^^^ ^EF07F7-- ^E3DC03-- ^EAFE02-- ^0406F0^^ ^FFE209^^ ^DFF107^^ ^F6F508^^ ^E4DE01^^ ^EF07F7-- ^E803E6-- 要么 : 0806EA 0406F0^^^^^ EF07F7-- E3DC03-- EAFE02-- 0406F0^^ FFE209^^ DFF107^^ F6F508^^ E4DE01^^ EF07F7-- E803E6-- 解决方法
由于您不希望在拆分中使用任何字符 – 而且您似乎也不希望它们本身成为一个组,因此您需要所谓的“零宽度断言”.由于我们谈论的是插入符号,因此字边界不起作用.它不在一条线的开头或结尾,因此唯一可行的ZWA是前瞻或后视.
既然你想在指定的模式前打破你的块,我会建议一个前瞻,包括:一个插入符号非插入符号或字符串结尾,如下所示: split /(?=^(?:[^^]|$))/; 如下图所示: while ( <DATA> ) { my @list = split /(?=^(?:[^^]|$))/; say "@list"; } __DATA__ ^0806EA^0406F0^^^^^^EF07F7--^E3DC03--^EAFE02-- ^0406F0^^^FFE209^^^DFF107^^^F6F508^^^E4DE01^^^EF07F7--^E803E6-- 输出: ^0806EA ^0406F0^^^^^ ^EF07F7-- ^E3DC03-- ^EAFE02-- ^0406F0^^ ^FFE209^^ ^DFF107^^ ^F6F508^^ ^E4DE01^^ ^EF07F7-- ^E803E6-- (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |