作者gugod (啊)
看板Perl
標題Re: [請益] 字串中連續逗號以空格隔開
時間Thu Apr 30 01:17:15 2020
※ 引述《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
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.37.172.193 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Perl/M.1588180640.A.1F3.html
推 luncha: 感謝gu大,學到了lookahead與ge的用法 04/30 10:09
推 herculus6502: 推 05/01 19:52
→ herculus6502: 法1比較直觀 05/01 20:01
→ luncha: 後來選擇法2,s{(,,+)}改成s{(,[,@-\*])} ,因爲還要@,-,* 05/01 23:16
→ luncha: ,需要處理,用法2一行就能滿足 05/01 23:16