NICHT funktioniert 3: (.*?),(.*?),(.*?)
Das ist eine erbärmlich schlechte Problembeschreibung.
> re.pl
$ $_ = 'aaaaaa,bbbbb,ccccc'
aaaaaa,bbbbb,ccccc
$ /(.*?),(.*?),(.*)/
[
[0] "aaaaaa",
[1] "bbbbb",
[2] "ccccc"
]
$ /(.*),(.*),(.*)/
[
[0] "aaaaaa",
[1] "bbbbb",
[2] "ccccc"
]
$ /(.*?),(.*?),(.*?)/
[
[0] "aaaaaa",
[1] "bbbbb",
[2] ""
]
Wie man an der Ausgabe sehen kann, funktioniert №3 sehr wohl. Es gibt bloß nicht zurück, was du erwartest, sondern den leeren String. .*? stimmt überein mit dem leeren String: jedes Zeichen, **null-** oder mehrmal.
Um das erwartete Ergebnis zu bekommen, musst du das Muster am Ende mittels $ verankern.