Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
次の文字列の "," を @ に置き換えたいのですが、単位 (10,000) 形式は変更しません。
x,y,z
x@y@z
x1,y1,z1
x1@y1@z1
x1,y1 10,000,z1
x1@y1 10,000@z1
を使っs/(\D),/\1@/gたのですが、2と3ではうまくいきません。 除外パターンが両側に数字であると認識する方法は?誰か助けてくれませんか?本当にありがとう
s/(\D),/\1@/g
次の代替手段を試してください。
s/,(?<!\d)(?!\d)/\@/g;
サンプル スクリプト
use strict; use warnings; my @array = ( 'x,y,z', 'x1,y1,z1', 'x1,y1 10,000,z1'); for my $string (@array) { $string =~ s/,(?<!\d)(?!\d)/\@/g; print "$string\n"; } #OUTPUT #x@y@z #x1@y1@z1 #x1@y1 10,000@z1