C2A0 und split
pl
- perl
- regex
Hi,
ist es möglich, für /\s+/
eine Voreinstellung zu treffen, dass das auch für NonBreakingSpaces (C2A0) matcht?
MfG
Hi,
ist es möglich, für /\s+/
eine Voreinstellung zu treffen, dass das auch für NonBreakingSpaces (C2A0) matcht?
MfG
PS/Edit: split /[\s\xC2\xA0]+/, $str
zum Heften ;)
Hi,
ist es möglich, für
/\s+/
eine Voreinstellung zu treffen, dass das auch für NonBreakingSpaces (C2A0) matcht? PS/Edit:split /[\s\xC2\xA0]+/, $str
zum Heften ;)
Bist Du sicher, daß die Lösung auch zum Problem paßt?
Ich hätte eher /(?:\s|\xC2\xA0)+/
erwartet - Deine Konstruktion könnte auch das INVERTED EXCLAMATION MARK ¡ (Bytes C2 und A1) erwischen. Und alle anderen Bytefolgen, die C2 enthalten. Wenn's denn byteweise bearbeitet wird.
Oder, da es sich wohl um Unicode handeln soll, /[\s\xA0]+/u
cu,
Andreas a/k/a MudGuard
hi,
wenn /u
greifen soll, muss der String utf-8-kodiert vorliegen. Dann matcht der Codepoint 0xA0.
Schönen Sonntag ;)
Hi,
wenn
/u
greifen soll, muss der String utf-8-kodiert vorliegen. Dann matcht der Codepoint 0xA0.
wenn das non-breaking space die Bytefolge C2 A0 hat, ist die Wahrscheinlichkeit, daß der String utf-8-codiert ist, ziemlich hoch …
cu,
Andreas a/k/a MudGuard
wenn das non-breaking space die Bytefolge C2 A0 hat, ist die Wahrscheinlichkeit, daß der String utf-8-codiert ist, ziemlich hoch …
Nein ;) Perl unterscheidet (seit v5.6 im Jahr 2001) intern zwischen Bytesequenzen (legacy) und kodierten Zeichenketten.
MfG
Bist Du sicher, daß die Lösung auch zum Problem paßt?
Die Frage ist berechtigt. Nun, der zu splittende Text hat nur diese Zeichen [0-9:\.a-zA-Z]
(Uhrzeiten, Zahlen und Funktionsnamen). Das Einzige was an NICHT-ASCII hinzukommt sind die NonBreakSpaces. Von daher darf sowohl an der gesamten Bytefolge C2A0 als auch auch an einzelnen Bytes C2, A0 oder A0, C2 gesplittet werden -- Das Ergebnis ist OK. Wenn man es ganz genau machen will:
my $nbsp = pack "CC", 0xC2,0xA0;
my @times = $self->trim($self->param('times')) ?
split /[\s$nbsp]+/,
# oder
split /[^0-9:\.a-zA-Z]+/,
Schön' Sonntag!