1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
#!/usr/bin/perl use warnings; use strict; my @aiString = ('1 1', '1 ér', '1 2', '1a w 1 1 2', '11 1 2 b'); for my $i (0 .. $#aiString) { print $aiString[$i].'|||'; $aiString[$i] = HnrKorr($aiString[$i]); print $aiString[$i]."\n"; } # for sub HnrKorr { my $string = shift;; ($string) =~ s%(?=[^a-zA-Z])(\s+)(?=[^a-zA-Z])%/%g; $string; } # HnrKorr
2010-06-08T07:37:21 haviCode (perl): (dl )($string) =~ s%(?=[^a-zA-Z])(\s+)(?=[^a-zA-Z])%/%g;
QuoteFunktioniert soweit ganz gut, bis auf das Element im Array mit dem Sonderzeichen. Schon klar, es besteht die Möglichkeit das in (?=[^a-zA-Z])
einzubauen, allerdings wäre mit eine "grundsätzliche" Lösung "lieber".
QuoteWie kann ich Perl sagen - anstatt (?=[^a-zA-Z]) besser bei allen \d... ersetzen?
1
2
3
4
5
1 1 -> 1/1 # korrekt
1 Úr -> 1/Úr # falsch
1 2 -> 1/2 # korrekt
1a w 1 1 2 -> 1a w/1/1/2 # korrekt
11 1 2 b -> 11/1/2 b # korrekt
($string) =~ s%(\s+)(?=\d)%/%g;
($string) =~ s%(?<=\d)(\s+)(?=\d)%/%g;