Schrift
[thread]7321[/thread]

Regular Expressions



<< >> 8 Einträge, 1 Seite
chakopelli
 2005-10-06 17:28
#58567 #58567
User since
2005-09-08
3 Artikel
BenutzerIn
[default_avatar]
Halllo Leute,

ich hab da ein Problemchen (wie jeder hior warscheinlich) :D

Ich will einen String durchsuchen und dann den Term aus der innersten Klammer in eine Variable speichern

also: $term = 1+2*(4+2*(1+3));
$klammer = 1+3;

Einen Ansatz hab ich auch schon:
$term =~ / ( . * ) ( \ ( ) (. *) /;
$term = $3;
$term =~ / ( . * ) ( \ ) ) ( . * ) /;
$klammer = $1;
print "$1\n";
Taulmarill
 2005-10-06 17:46
#58568 #58568
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
Code: (dl )
1
2
3
my $term = '1+2*(4+2*(1+3))';
my ( $klammer ) = $term =~ /(\([^()]*\))/;
print "term: $term\nklammer: $klammer\n";


( anfang der zu fangenden zeichenkette
\( öffnende klammer
[^()]* eine beliebige anzahl von zeichen die keine runden klammern sind
\) schliessende klammer
) ende der zu fangenden zeichenkette
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
Gast Gast
 2005-10-06 23:25
#58569 #58569
Hi,

sorry, daß ich reinplatze!
Wie kann man es machen, daß die Ausgabe nicht (1+3) ist, sondern
1+3? Nur mit RE?
pq
 2005-10-07 00:38
#58570 #58570
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
naja, du setzt
(      anfang der zu fangenden zeichenkette
und
)      ende der zu fangenden zeichenkette
jeweils eins weiter nach innen.
perldoc perlre
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
Gast Gast
 2005-10-07 11:20
#58571 #58571
@pq schon bezogen auf dem Beitrag von Taumarill!
renee
 2005-10-07 11:27
#58572 #58572
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@xy: dann wende doch pq's Vorschlag auf Taulmarills Code an:
Code: (dl )
my ( $klammer ) = $term =~ /\(([^()]*)\)/;
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/
pq
 2005-10-07 11:50
#58573 #58573
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=Guest,07.10.2005, 09:20]@pq schon bezogen auf dem Beitrag von Taumarill![/quote]
ich bezog mich ja auf seinen beitrag, wie kommst du darauf, dass ich
das nicht tat?
ich dachte, teile einer regex eins weiter nach innen zu setzen, wäre jetzt kein
so abwegiger und unverständlicher gedanke.
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
chakopelli
 2005-10-07 11:53
#58574 #58574
User since
2005-09-08
3 Artikel
BenutzerIn
[default_avatar]
Hey danke

läuft wie geschmiert
<< >> 8 Einträge, 1 Seite



View all threads created 2005-10-06 17:28.