Schrift
[thread]7638[/thread]

String extrahieren



<< >> 4 Einträge, 1 Seite
tophoven
 2006-01-20 11:28
#62099 #62099
User since
2005-12-02
28 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

ich muss aus einer eigelesenen Zeile einen Teil extrahieren. Ich schaffe dies auch mittels vieler Umwege. Geht es aber nicht noch einfacher.
Die Zeile sieht wie folgt aus:

$db_pass_word = 'meinPass2';       // Modified or inserted by Install Tool.

Wichtig ist mir hier der Wert >meinPass2<, welchen ich zur Weiterverarbeitung benötige. Den Aufbau der Zeile kann ich leider nicht verändern.

Mein Code: siehe Anhang.

Bin über jede Anregung Dankbar.

Besten Dank im voraus

Franz-Josef
-----------------------------------
...
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# $pwline enthält die ganze Zeile
if (defined($pwline)) {
   ($teil1, $wert) = split ( /\s=\s/, $pwline );
   ($wert, $teil2) = split ( /\s\/\/\s/, $wert );
   $dummy = substr($wert, 0, 1);
   if ( $dummy eq "'" ) {
       $wert = substr($wert,1 );
   }
   $laenge = length($wert);
   $dummy = substr($wert, $laenge-1, 1);
   while ( $dummy eq " ") {
       $wert = substr($wert, 0, $laenge-1);
       $laenge = length($wert);
       $dummy = substr($wert, $laenge-1, 1);
   }
   $laenge = length($wert);
   $dummy = substr($wert, $laenge-1, 1);
   if ( $dummy eq ";" ) {
       $wert = substr($wert, 0, $laenge-2);
   }
   print "Das Passwort lautet: >$wert< \n";
}

...

edit pq: code-tags hinzugefügt\n\n

<!--EDIT|pq|1137755429-->
docsnyder
 2006-01-20 12:10
#62100 #62100
User since
2005-09-08
300 Artikel
BenutzerIn
[Homepage] [default_avatar]
Du solltest mal was über reguläre Ausdrücke lesen.

Code: (dl )
$pwline =~ s!^.*=\s+'(.*)';.*$!$1!;


Gruß, Doc\n\n

<!--EDIT|docsnyder|1137751842-->
Taulmarill
 2006-01-20 12:41
#62101 #62101
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
anstatt (.*) würde ich ([^']*) oder (.*?) benutzen, sonst bekommst du u.u. mehr als du willst.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
Crian
 2006-01-20 17:53
#62102 #62102
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Warum nicht einfach $pwline =~ m~'([^']+)'~;, wenn der Aufbau immer so ist?
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
<< >> 4 Einträge, 1 Seite



View all threads created 2006-01-20 11:28.