2012-08-26 55 views
0

我有這樣的詩句:如何在一行的開頭替換集合中的所有字符?

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

隨着正則表達式,是有可能僅由相同數量的空間,如果是,如何替換行開頭的逗號

+4

你在用什麼語言?在這種情況下,perl或sed可以使用 –

+0

,但是用一種我能想出來的語言。我只是想知道是否有純粹的基於正則表達式的解決方案。 – Erik

回答

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' 
4

sed例如:

$ echo ',,,,,,,,,foo,bar 
,,,,,x,,blabla,' | sed ':r;s/^\(,*\),/\1 /;tr' 
     foo,bar 
    x,,blabla, 
1

隨着perl

perl -pe 's/^,+/q{ } x length $&/e' <<< ',,,,,,,,,foo,bar' 
相關問題