Thread ZERO WIDTH SPACE (Unicode 200B) mit einem RegEx finden und ersetzen (6 answers)
Opened by micha2 at 2023-07-12 14:26

GwenDragon
 2023-07-12 15:53
#195141 #195141
User since
2005-01-17
14759 Artikel
Admin1
[Homepage]
user image
Öhm, geht bei mir auf Perl 5.28 Windows.
-CS ist der Schalter für Unicode, IO-Kodierung etc.
https://perldoc.perl.org/perlrun#-C-%5Bnumber/list...

Code: (dl )
1
2
perl -CS -E"print qq/123 asdf\N{ZERO WIDTH SPACE}123 jkl/" | perl -CS -pe"s/\N{ZERO WIDTH SPACE}/#/g"
123 asdf#123 jkl



Auf Debian Linux in Bash so:
Code: (dl )
1
2
 # echo -e "Das ist ein ZWSP\u200BPunkt" | perl -CS -pe"s/\N{ZERO WIDTH SPACE}/#/g"
Das ist ein ZWSP#Punkt

Code: (dl )
1
2
echo -e "><.>\u200B<.>​<" | perl -CS -pe"s/\N{ZERO WIDTH SPACE}/#/g"
><.>#<.>#<

Die zweifache Ersetzung durch Perl versteh’ ich allerdings nicht, wo doch beim echo nur ein ZWSP drin ist.???

//EDIT 18:05:
Och Micha2! Autsch! Wie kannste auch nur in dein Beispiel ein echtes (unsichtbares) ZWSP als Zeichen rein tun.

Bin aber irgendwo selbst schuld; kommt davon, wenn eine Copy&Paste macht, anstatt das erst mal mit vim oder hd anzusehen.
Vim zeigt nämlich: ><.>\u200B<200b>​<
Code: (dl )
1
2
3
 echo -e "><.>\u200B<.>​<" | hd
00000000 3e 3c 2e 3e e2 80 8b 3c 2e 3e e2 80 8b 3c 0a |><.>...<.>...<.|
0000000f
So verstehe ich dann auch, warum es zweimal ersetzt wurde.
LOL. Hitze dörrt Hirn.

@Micha2 Hilft dir das oben genannte weiter für eine Ersetzung?
Last edited: 2023-07-12 18:36:38 +0200 (CEST)

View full thread ZERO WIDTH SPACE (Unicode 200B) mit einem RegEx finden und ersetzen