0

次のような行があります。

,,,,,,,,,foo,bar
,,,,,x,,blabla,

regexを使用すると、行頭のカンマのみを同じ数のスペースに置き換えることができますか?

4

3 に答える 3

4

sed例:

$ echo ',,,,,,,,,foo,bar
,,,,,x,,blabla,' | sed ':r;s/^\(,*\),/\1 /;tr'
         foo,bar
     x,,blabla,
于 2012-08-26T20:50:13.127 に答える
2

肯定的な後読みで Java を使用する:

String s = ",,,,,,,,,foo,bar";
System.out.println(s.replaceAll("(?<=^,+),", " "));
// '         foo,bar'

Python の使用:

> import re
> s = ',,,,,,,,,foo,bar'
> re.sub("^,+", lambda m: len(m.group(0)) * ' ', s)
'         foo,bar'
于 2012-08-26T20:49:45.027 に答える
1

perl

perl -pe 's/^,+/q{ } x length $&/e' <<< ',,,,,,,,,foo,bar'
于 2012-08-26T21:43:45.373 に答える