Thread regex Problem: regex replace (3 answers)
Opened by Gast at 2007-01-19 15:20

topeg
 2007-01-19 17:44
#73318 #73318
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Wie man es machen könnte:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/perl

my $str='dr-x------    0  4294967295 513    0 Sep 11 15:45 Start Menu';
print "$str\n";

# Alle Leerzeichen
# zwischen einer Zahl und einem Buchstaben
# oder zwischen zwei Zahlen
# durch ein '/' ersetzen.
(my $str_out=$str)=~s!(?<=[\d-])\s+(?=\w)|(?<=\w)\s+(?=\d)!/!gi;
print "$str_out\n";

# oder (bessere lösung)
# Zerteile den string an den Leerzeichen,
# bis das Array neun elemente enthält
# und füge das Array mit '/' als Trennern wieder zusammen.
$str_out=join('/',split(/\s+/,$str,9));
print "$str_out\n";

View full thread regex Problem: regex replace