Split regex Unterschied

Split regex Unterschied

am 27.03.2007 10:20:51 von Andreas Hernitscheck

Hallo,

kann mir jemand erklären, warum

my @s=split(/\n/,$s);

nicht das gleiche ist wie

my @s=split(/(\n)/,$s);

? Im 2. Beispiel wird je zwei mal gesplittet. Verstehe leider nicht
weshalb.

Re: Split regex Unterschied

am 27.03.2007 10:23:58 von Frank Seitz

Andreas Hernitscheck wrote:
>
> kann mir jemand erklären, warum
>
> my @s=split(/\n/,$s);
>
> nicht das gleiche ist wie
>
> my @s=split(/(\n)/,$s);
>
> ? Im 2. Beispiel wird je zwei mal gesplittet. Verstehe leider nicht
> weshalb.

Was meinst Du damit?

Grüße
Frank
--
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel

Re: Split regex Unterschied

am 27.03.2007 10:26:36 von Bjoern Hoehrmann

* Andreas Hernitscheck wrote in de.comp.lang.perl.misc:
>kann mir jemand erklären, warum
>
>my @s=split(/\n/,$s);
>
>nicht das gleiche ist wie
>
>my @s=split(/(\n)/,$s);
>
>? Im 2. Beispiel wird je zwei mal gesplittet. Verstehe leider nicht
>weshalb.

Nein, Perl splittet den String dann und gibt zusätzlich den jeweils
trennenden Ausdruck ebenfalls zurück, um das Beispiel aus `perldoc
-f split` zu nehmen,

If the PATTERN contains parentheses, additional list elements
are created from each matching substring in the delimiter.

split(/([,-])/, "1-10,20", 3);

produces the list value

(1, '-', 10, ',', 20)

Das sollte dann auch erklären warum das so ist.
--
Björn Höhrmann · mailto:bjoern@hoehrmann.de · http://bjoern.hoehrmann.de
Weinh. Str. 22 · Telefon: +49(0)621/4309674 · http://www.bjoernsworld.de
68309 Mannheim · PGP Pub. KeyID: 0xA4357E78 · http://www.websitedev.de/

Re: Split regex Unterschied

am 02.04.2007 10:31:58 von Andreas Hernitscheck

Am Tue, 27 Mar 2007 10:26:36 +0200 schrieb Bjoern Hoehrmann:
> Nein, Perl splittet den String dann und gibt zusätzlich den jeweils
> trennenden Ausdruck ebenfalls zurück, um das Beispiel aus `perldoc

> Das sollte dann auch erklären warum das so ist.


Ja danke, man lernt immer wieder was neues.