Schrift
[thread]1059[/thread]

Array1 verändern in Array2?



<< >> 6 Einträge, 1 Seite
Gast Gast
 2006-07-25 10:18
#10745 #10745
Hallo!

Vorweg: Ich arbeite mit Regulären Ausdrücken, die ich in ein Array schreibe.

Ich bin an die Grenzen der Regulären-Ausdruck-Element gelangt. Bei der Positive Lookbehind-Assertion

Code: (dl )
(?<=...)...

sind z. B. keine variablen Längen erlaubt.

Mein Text, den ich durchsuche, sieht wie folgt aus:

Code: (dl )
Beschreibung_______|_234'322'434

Ich habe meinen Regulären Ausdruck so geschrieben, dass ich ihn angewiesen habe, nach der Zahl zu suchen, aber nur dann zu matchen, wenn davor "Beschreibung_______|_" steht.

Der eigentliche Match war dann nicht "Beschreibung_______|_234'322'434" sondern "234'322'434".

Da die Unterstriche aber variieren können, ist das ein Problem.

Meine Frage lautet nun: Ist es möglich, ein in ein Array abgelegtes (z. B.) "Beschreibung_______|_234'322'434" später mit Hilfe einer Funktion (?) in ein anderes Array zu schreiben? Z. B. nur die "234'322'434".

So würde ich nämlich auf den ganzen Begriff matchen lassen und umgehe dann das Problem, dass in der Positive Lookbehind-Assertion keine variablen Längen erlaubt sind.
renee
 2006-07-25 10:31
#10746 #10746
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Warum machst Du nicht:
Code: (dl )
1
2
3
4
5
6
my $string = q~Beschreibung_______|_234'322'434
blablabla
ipse lorem ...
Beschreibung_______|_234'322'433~;
my (@zahlen) = $string =~ /Beschreibung_+\|_+([\d']+)/g;
print $_,"\n" for(@zahlen);
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/
morph
 2006-07-25 10:35
#10747 #10747
User since
2007-12-06
79 Artikel
BenutzerIn
[Homepage] [default_avatar]
Servus,

hör ma uff mit kursiv un fett und was weiß ich nich! Komisch is das.

Mir sieht das so aus:
Code: (dl )
$variable =~ s/(Beschreibung_+\|_\d{3}'\d{3}'\{3})/$1/;


Wobei nun fest ist, dass immer 3 Zahlen und dann ein Hochkomma auftreten. Dabei ist egal, wie viele Unterstriche nach dem Wort Beschreibung folgen. Hauptsache eines ist drinnen.

Hab' ich irgfendwas falsch verstanden?

EDIT:
Na war doch nah' dran! :)

-uwl\n\n

<!--EDIT|TbHoCne|1153809419-->
pq
 2006-07-25 12:17
#10748 #10748
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
leute, über welche sprache reden wir hier eigentlich? dieses forum hier
heißt "sonstige Sprachen, auch PHP"
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
Thorium
 2006-07-25 13:12
#10749 #10749
User since
2003-08-04
232 Artikel
BenutzerIn
[Homepage] [default_avatar]
Naja; auch wenn das ein Schock für dich sein mag, pq, aber Perl ist nicht die einzige Sprache, die Regexp kann :)
Somit ist eine Regexp-Frage so wie sie gestellt wurde eigentlich Sprachunabhängig.
Per|li|nist der; -en, -en <zu ↑...ist>: a) Anhänger, Vertreter der radikalen Perlinisten die Perl als die einzig wahre Sprache ansehen; b) Mitglied einer perlinistischen Community.
pq
 2006-07-25 13:23
#10750 #10750
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
oh, vielen dank, thorium, aber das wusste ich schon. und wieso sollte das
überhaupt ein schock für mich sein?
aber renee schrieb perl-code. und der op schrieb nicht, in welcher
sprache er das macht. ich kann mir nicht vorstellen, dass der op
das nur in der theorie wissen will, er wird mit sicherheit eine
bestimmte sprache haben, in der er das machen will.
und außerdem gibt es in verschiedenen sprachen verschiedene
implementierungen von regexes.
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
<< >> 6 Einträge, 1 Seite



View all threads created 2006-07-25 10:18.