Re: [请益] 字串中连续逗号以空格隔开

楼主: gugod (å•Š)   2020-04-30 01:17:15
※ 引述《luncha (谢谢)》之铭言:
: 目前在使用perl的字串处理
: 但是无法有效分开字符,想请大家解惑
: 想要把字串中”连续逗号”用空格隔开
: 如下:
: $str1=‘judge(“pat, pat1, pat2”, INIT,,,,,,,,,,,)‘;
在此提供两个解法,看看您觉得哪种比较好理解囉。
方法1: 利用 zero-width lookahed[1]
$str1 =~ s/,(?=,)/,/g;
方法2: 利用 s///e [2]
$str1 =~ s{(,,+)}{ join(" ", split("", $1)) }ge;
[1]: https://perldoc.pl/perlre#Lookaround-Assertions
[2]: https://perldoc.pl/perlop#s%2FPATTERN%2FREPLACEMENT%2Fmsixpodualngcer
作者: luncha (谢谢)   2020-04-30 10:09:00
感谢gu大,学到了lookahead与ge的用法
作者: herculus6502 (金麟岂是池中物)   2020-05-01 19:52:00
推法1比较直观
作者: luncha (谢谢)   2020-05-01 23:16:00
后来选择法2,s{(,,+)}改成s{(,[,@-\*])} ,因为还要@,-,*,需要处理,用法2一行就能满足

Links booklink

Contact Us: admin [ a t ] ucptt.com