作者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://webptt.com/cn.aspx?n=bbs/Perl/M.1588180640.A.1F3.html
1F:推 luncha: 感谢gu大,学到了lookahead与ge的用法 04/30 10:09
2F:推 herculus6502: 推 05/01 19:52
3F:→ herculus6502: 法1比较直观 05/01 20:01
4F:→ luncha: 後来选择法2,s{(,,+)}改成s{(,[,@-\*])} ,因爲还要@,-,* 05/01 23:16
5F:→ luncha: ,需要处理,用法2一行就能满足 05/01 23:16