Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]7138[/thread]

Regulärer Ausdruck (Seite 2)



<< |< 1 2 >| >> 19 Einträge, 2 Seiten
Spider-Mann
 2005-07-17 02:45
#56457 #56457
User since
2005-07-06
23 Artikel
BenutzerIn
[default_avatar]
Lösung: erst decodieren, damit bei allen evtl. bereits ersetzten Zeichen das "&" nicht durch "&amp;" ersetzt wird.
decode_entities($a);
encode_entities($a);
pq
 2005-07-17 14:16
#56458 #56458
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=Spider-Mann,17.07.2005, 00:45]Lösung: erst decodieren, damit bei allen evtl. bereits ersetzten Zeichen das "&" nicht durch "&amp;" ersetzt wird.
decode_entities($a);
encode_entities($a);[/quote]
da hebt sich ja (eigentlich) auf.
vielleicht hättest du erwähnen sollen, dass dein unsprünglicher text nur
halbfertig kodiert ist, also offensichtlich teilweise &amp; enthält, aber
auch unkodierte &. dann ist auch klar, warum das fehlschlägt.
wäre es so schwer gewesen, einen beispieltext zu posten, der das problem
demonstriert?
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Spider-Mann
 2005-07-17 15:34
#56459 #56459
User since
2005-07-06
23 Artikel
BenutzerIn
[default_avatar]
Ich habe drei Beispielzeilen gepostet.

Normalerweise ist der Text unkodiert, da er aber evtl. von Hand bearbeitet wird könnte ja jemand auf die Idee kommen &amp; zu schreiben.

Eine neue Frage:

Wo kann ich eine Liste aller Modifier und Optionen herbekommen? Also was "m" "s" und "tr" bedeuten weiß ich:

=~ m/123/ -> matcht auf 123
=~ tr/[a-z]/[A-Z]/ -> transformiert Kleinbuchstaben in Großbuchstaben
=~ s/\"//g -> entfernt alle Anführungszeichen
Aber was gibt es noch?

=~ m/aBc/i -> "i" matcht unabhängig von Groß/Kleinbuchstaben
=~ s/\"//g -> "g" sucht nach dem ersten Vorkommen weiter
Aber was gibt es noch?\n\n

<!--EDIT|Spider-Mann|1121600163-->
pKai
 2005-07-17 15:55
#56460 #56460
User since
2005-02-18
357 Artikel
BenutzerIn
[default_avatar]
Das Vorgehen mit encode(decode(..)) bewirkt ja, dass man ein (literales) HTML-Entity nicht als Teil des Nick wählen kann, bzw. dass es als HTML-Entity in den Nick eingeht.
Letztlich nur eine Frage, ob man die Erwartung des Anwenders damit erfüllt (idR wahrscheilich schon, IMHO).

Die gesuchten Infos zu den Modifikatoren finden sich unter
perldoc perlop
I sense a soul in search of answers.
pq
 2005-07-17 16:22
#56461 #56461
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=Spider-Mann,17.07.2005, 13:34]Ich habe drei Beispielzeilen gepostet.[/quote]
[quote=pq,17.07.2005, 12:16]einen beispieltext zu posten, der das problem demonstriert?[/quote]
Quote
Normalerweise ist der Text unkodiert, da er aber evtl. von Hand bearbeitet wird könnte ja jemand auf die Idee kommen &amp; zu schreiben.

na und? entweder es ist festgelegt, dass du kodierten text hast oder es ist
festgelegt, dass du unkodierten text hast.
mit mutmaßungen, der nutzen könnte ja evtl. auf die idee kommen,
seinen text selbst zu kodieren, kommst du langfristig nicht weit.
möchte ein anderer nutzer tatsächlich aus irgendeinem grund "&gt;"
schreiben, ist er angeschmiert.
also, klare regeln. ohne sie brauchst du künstliche intelligenz.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Crian
 2005-07-18 17:45
#56462 #56462
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
[quote=Spider-Mann,16.07.2005, 23:04]HTML::Entities macht ja aus einem "&" immer ein "&amp;" also macht es aus einem "&amp;" ein "&amp;amp;".[/quote]
Dann sollte man das vielleicht mal patchen. Ich verwende für sowas

Code: (dl )
s~&(?!amp;)~&amp;~g;


Edit: Eventuell könnte man das noch erweitern auf

Code: (dl )
s~&(?![a-z]{2,3};)~&amp;~g;
\n\n

<!--EDIT|Crian|1121694531-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Relais
 2005-07-18 18:08
#56463 #56463
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Crian,18.07.2005, 15:45][quote=Spider-Mann,16.07.2005, 23:04]HTML::Entities macht ja aus einem "&" immer ein "&amp;" also macht es aus einem "&amp;" ein "&amp;amp;".[/quote]
Dann sollte man das vielleicht mal patchen.[/quote]
Wieso patchen, denn das Verhalten ist korrekt. Wie sollte man sonst den String "&amp;" verlustfrei transportieren?

don't fix it unless it's broken oder so.
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
Strat
 2005-07-18 18:16
#56464 #56464
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
it's not a bug, it's a feature...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Crian
 2005-07-18 18:19
#56465 #56465
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Da sieht man mal, es kommt stark auf den Kontext des Programms an. Ihr habt natürlich Recht, wenn man an Eingabefeld -> Verarbeitung(DB) -> Anzeige(HTML) denkt.

In meinem Fall ging es um die Verarbeitung von XML-Dateien, die aus diversen Quellen kommen und wo sicher ist, dass "&amp;" und Kollegen garantiert nicht im Originaltext standen.

Also: Ich nehme alles zurück und behaupte das Gegenteil =)
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< |< 1 2 >| >> 19 Einträge, 2 Seiten



View all threads created 2005-07-16 14:05.