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