Schrift
[thread]6423[/thread]

zeichen vor einem string extrahieren



<< >> 9 Einträge, 1 Seite
Tobias Heise
 2004-07-22 03:14
#84754 #84754
User since
2004-07-05
13 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo!
Wie schafft man es das man die Zeichen vor einem String extrahiert.

quasi: my $string = "toller string heute nacht hier";

jetzt möchte ich das toller extrahiert wird, wie macht man sowas, nach einem zeichen hab ich schon hingekriegt, aber davor??

Gute Nacht!

Tobi
[E|B]
 2004-07-22 03:18
#84755 #84755
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
$string = "toller string heute nacht hier";
$string =~ /^(.*?)string.+$/;
print $1;
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
Crian
 2004-07-22 13:23
#84756 #84756
User since
2003-08-04
5871 Artikel
ModeratorIn
[Homepage]
user image
Oder

Code: (dl )
1
2
3
my $string = "toller string heute nacht hier";
$string =~ /(.*?)(?=string)/;
print "'$1'\n";


Ausgabe

Code: (dl )
'toller '


TIMTOWDI =)
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
pq
 2004-07-22 13:57
#84757 #84757
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
niemals $1 verwenden, ohne die vorherige regex geprüft zu haben! ganz
einfach, weil in $1 noch ein alter wert stehen könnte, falls die regex nicht
matcht. also am besten:
my ($s) = $string =~ /(.*?)(?=string)/;
dann ist $s im fehlerfall wenigstens undef und hat nicht einen alten wert.
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
coax
 2004-07-22 15:41
#84758 #84758
User since
2003-08-11
457 Artikel
BenutzerIn
[default_avatar]
[quote=Crian,22.07.2004, 11:23]TIMTOWDI =)[/quote]
genau :)

Code: (dl )
1
2
3
4
5
6
7
my $string = "toller string heute nacht hier";

my $pos = index($string, ' string');

my $w = substr($string, 0, $pos);

print "$w\n";


und gekuerzt
Code: (dl )
    my $w = substr($string, 0, index($string, ' string'));
,,Das perlt aber heute wieder...'' -- Dittsche
Taulmarill
 2004-07-22 16:19
#84759 #84759
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
falls du nur das erste wort möchtest funktioniert folgender regex
Code: (dl )
my ($foo) = $string =~ /(\w+)/;

oder Crains regex ohne leerzeichen
Code: (dl )
my ($foo) = $string =~ /(.*?) *(?=string)/;


weitere anregungen hier:
perlrequick => http://www.perldoc.com/perl5.8.4/pod/perlrequick.html
perlretut => http://www.perldoc.com/perl5.8.4/pod/perlretut.html
perlre => http://www.perldoc.com/perl5.8.4/pod/perlre.html
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
format_c
 2004-07-22 16:24
#84760 #84760
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
@Taumarill: Das ist mal ne geile Signatur. Sorry for OffTopic

Gruß Alex
Gast Gast
 2004-07-22 19:10
#84761 #84761
[quote=format_c,22.07.2004, 14:24]@Taumarill: Das ist mal ne geile Signatur. Sorry for OffTopic

Gruß Alex[/quote]
'gegolfed' sieht das dann so aus:
Code: (dl )
1
2
3
4
for(qw'FA2F7C39139F45F78 0A281045944445044 0A2F107D54447DE78 0A211045344445050
    73CF1045138445F480 0 F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E
         820A20451412414 83E93C4513D17D2'){print$_?'#':' 'for
              split//,unpack"B*",pack"H*",$_;print"\n"}


Sorry - kleiner Scherz am Rande ;)
Taulmarill
 2004-07-22 23:45
#84762 #84762
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
also, wenn schon golfen dann richtig:
Code: (dl )
map{tr/01/ #/,print"$_\n"for unpack"B*",pack"H*",$_}qw/FA2F7C39139F45F78 0A281045944445044 0A2F107D54447DE78 0A211045344445050 73CF1045138445F480 0 F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2/


btw. wir sind schon wieder 3 posts off-topic, der nächste öffnet bitte nen neuen thread (ich hätts ja gemacht, aber nen thread über seine eigene signatur sieht irgendwie komisch aus)

p.s. thx format_c
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
<< >> 9 Einträge, 1 Seite



View all threads created 2004-07-22 03:14.