Thread Split-delimiters -> " " und "" und // und / / (19 answers)
Opened by Student87 at 2012-11-21 15:10

Linuxer
 2012-11-21 15:45
#163493 #163493
User since
2006-01-27
3872 Artikel
HausmeisterIn

user image
Hi,

Jo, aber wenn Du die Doku liest, lies bitte mehr als nur einzelne Sätze ;-) (hast Du sicherlich getan, nicht böse sein...)

Wie der Satz selber einleitet, ist hier die Rede von einem Spezialfall. Nach dem zitierten Satz wird auch noch ein Beipiel gebracht:

Quote
Thus, split(' ') can be used to emulate awk's default behavior, whereas split(/ /) will give you as many null initial fields as there are leading spaces.


D.h. normalerweise nimmt split() ein Regex-Pattern als Trennzeichen; das hast Du vollkommen richtig erkannt.
Es gibt aber den Spezialfall, bei dem es auch einen String mit einem Leerzeichen akzeptiert, um eben awk's Standard-Verhalten nachzustellen.

Vergleiche:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# splitte an Pattern mit EINEM Leerzeichen
$ perl -e '$string = " foo bar"; @fields = split(/ /,$string); foreach(@fields) {$c++; print "$c $_\n"}'
1
2
3 foo
4
5 bar
# splitte an Pattern mit EINEM oder MEHREREN Leerzeichen
$ perl -e '$string = " foo bar"; @fields = split(/ +/,$string); foreach(@fields) {$c++; print "$c $_\n"}'
1
2 foo
3 bar
# SPEZIAL: splitte an STRING mit einem Leerzeichen
$ perl -e '$string = " foo bar"; @fields = split(" ",$string); foreach(@fields) {$c++; print "$c $_\n"}'
1 foo
2 bar
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Split-delimiters -> " " und "" und // und / /