Re: [問題] regexp的replace?

看板 Perl
作者
時間
留言 0則留言,0人參與討論
推噓 0  ( 0推 0噓 0→ )
討論串 2
※ 引述《vernc (cralvin)》之銘言: : ○、○[FL-clover、door、(天満春華)]返せ、かわり、○○で。[2007年、2009年](東方) : ○、○[FL-clover,door,(天満春華)]返せ、かわり、○○で。[2007年、2009年](東方) : 如上例若限定只將第一個[]範圍的n個、取代成, n不固定 : ^([^\n[]*?\[[^]]*?)、([^]]*\]) : $1,$2 : 上面一次只能取代一個,請問要怎才能處理n個? : (?=\[*)(、)(?=[^]]*\]) : 這行也不對 : 那位大大能教一下嗎 : thx 我猜您在這裡使用的應該是 s/// 算符吧。像是 $s =~ s/、/,/; 不過這麼寫的話的的確只會處裡第一個。要處理全部的話,最後要加上 g: $s =~ s/、/,/g; 另我覺得全部寫成一條 regexp 會看起來很長很複雜,不如先找出第一個 '[' 與 第一個 ']' 的位置,然後對那一段字串範圍做前述的 s///. 類似這樣: my $pos1 = index($s, '['); my $pos2 = index($s, ']'); substr($s, $pos1, $pos2 - $pos1 + 1) =~ s/、/,/g; 我自已沒仔細測過就是了。 --
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 116.94.208.127 (日本) ※ 文章網址: https://www.ptt.cc/bbs/Perl/M.1605262999.A.EBB.html

完整討論串

1 [問題] regexp的replace?
1 perl 2020-11-03 00:13
>> Re: [問題] regexp的replace?
perl 2020-11-13 18:23