Schrift
[thread]8890[/thread]

\Q und \E in Regexen



<< >> 2 Einträge, 1 Seite
GoodFella
 2007-03-29 21:26
#75518 #75518
User since
2007-01-09
192 Artikel
BenutzerIn
[default_avatar]
Ich habe folgendes Testscript gebaut:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
#!/usr/bin/perl

use strict;
use warnings;

my $string = 'Zeichen_zum_Escapen.\/ok_jetzt_aber_welche_die_nicht_escaped_werden #%';
my $regexp = ">\Q$string\Eo<";

print $regexp;


Ausgabe:

Quote
---------- Perl ----------
>Zeichen_zum_Escapen\.\\\/ok_jetzt_aber_welche_die_nicht_escaped_werden\ \#\%o<
Output completed (0 sec consumed) - Normal Termination


..kann mir jemand erklären, warum z.B. auch ein Leerzeichen escaped wird?
Und: kann das Probleme beim späteren einfügen in eine Regex geben?
renee
 2007-03-29 22:01
#75519 #75519
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Weil das Leerzeichen ein "Non word character ist". Das sind nämlich nur A-Za-z0-9_ (ich hoffe, ich habe nichts vergessen und natürlich nur wenn man kein locale verwendet)

Aus perlop
Quote
\Q quote non-word characters till \E
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 2 Einträge, 1 Seite



View all threads created 2007-03-29 21:26.