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

RegEx verhält sich seltsam: oder sinds die Daten



<< >> 8 Einträge, 1 Seite
format_c
 2005-11-30 17:59
#60637 #60637
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Hi,
hab folgendes Problem. Hole Daten aus einem Directory und möchte dann B4/132 an dem / aufsplitten aber auch nur wenn die zeichenkette so aussieht.
Habe dazu folgende Regex und test code:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
    $curvalue =~ s/\s/!/g;#Verzweiflungsversch

print "Bau/Raum: '$curvalue' \t ";

if ($curvalue =~ m?^\s*[^/]+\s*/\s*([^/]+)\s*$?) {

$curvalue=$1;

print "getroffen\n";

}

Das ergebnis sieh z.B so aus:
Code: (dl )
1
2
Bau/Raum: 'B4/370'       getroffen
Bau/Raum: 'D40/222' Bau/Raum: ''Bau/Raum: 'B4/369'


Nur beim ersten matcht es. Ich weis einfach nicht warum nicht bei den anderen.
Gebe ich die zeichenketten so ein funktioniert es.
Weis jemand weiter?
esskar
 2005-11-30 18:11
#60638 #60638
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
? sind keine guten trenner

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
use strict;

my @values = ("B4/370", "", "B4/349", "foo/bar/foo");
foreach my $curvalue (@values) {
print "Bau/Raum: '$curvalue'\t";
if ($curvalue =~ m{^\s*[^/]+\s*/\s*([^/]+)\s*$}) {
$curvalue = $1;
print "getroffen";
}
print "\n";
}
format_c
 2005-11-30 19:49
#60639 #60639
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Das stimmt allerdings. Da hätt ich auch drauf kommen können. probier ich mal. Danke.


Gruß Alex
esskar
 2005-12-01 03:30
#60640 #60640
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
liegt wohl dran, dass ? ein eigenes regexp comando ist...
Dubu
 2005-12-01 08:20
#60641 #60641
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Sagen wir mal so: Daran, dass eine mit ?...? limitierte Regexp eine ganz eigene Bedeutung hat, falls du das meinst.

[quote=perldoc perlop,Regexp Quote-Like Operators]
?PATTERN?
              This is just like the "/pattern/" search, except that it matches only once between calls to the reset() operator.[...]
[/quote]
esskar
 2005-12-01 11:56
#60642 #60642
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=Dubu,01.12.2005, 07:20][quote=perldoc perlop,Regexp Quote-Like Operators]
?PATTERN?
              This is just like the "/pattern/" search, except that it matches only once between calls to the reset() operator.[...]
[/quote][/quote]
hmm was heißt denn dann "matches only once" ... einmal pro run ? weil das wäre dann ja hier der fall gewesen!
pKai
 2005-12-01 16:47
#60643 #60643
User since
2005-02-18
357 Artikel
BenutzerIn
[default_avatar]
hmm was heißt denn dann[quote=esskar,01.Dec..2005, 10:56]hmm was heißt denn dann "matches only once" ... einmal pro run ? weil das wäre dann ja hier der fall gewesen![/quote]esskar hat dubu verstanden? weil das wäre dann ja hier der fall gewesen!
I sense a soul in search of answers.
esskar
 2005-12-01 16:54
#60644 #60644
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
was?
<< >> 8 Einträge, 1 Seite



View all threads created 2005-11-30 17:59.