Re: [請益] 字串中連續逗號以空格隔開

看板Perl作者 (啊)時間4年前 (2020/04/30 01:17), 編輯推噓2(203)
留言5則, 2人參與, 4年前最新討論串3/3 (看更多)
※ 引述《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

04/30 10:09, 4年前 , 1F
感謝gu大,學到了lookahead與ge的用法
04/30 10:09, 1F

05/01 19:52, 4年前 , 2F
05/01 19:52, 2F

05/01 20:01, 4年前 , 3F
法1比較直觀
05/01 20:01, 3F

05/01 23:16, 4年前 , 4F
後來選擇法2,s{(,,+)}改成s{(,[,@-\*])} ,因爲還要@,-,*
05/01 23:16, 4F

05/01 23:16, 4年前 , 5F
,需要處理,用法2一行就能滿足
05/01 23:16, 5F
文章代碼(AID): #1UgRQW7p (Perl)
文章代碼(AID): #1UgRQW7p (Perl)