Schrift
[thread]8231[/thread]

Stringvergleich mit Regular Expressions

Leser: 1


<< >> 5 Einträge, 1 Seite
Gast Gast
 2006-08-10 13:25
#68806 #68806
Hallo zusammen,

ich möchte mit regulären Ausdrücken an folgenden String:
" * [[Test789][Test123]]"
an den Teilstring "Test123" herankommen.

Ist das möglich?

Danke und schöne Grüße
renee
 2006-08-10 13:29
#68807 #68807
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
#!/usr/bin/perl

use strict;
use warnings;

my $string = " * [[Test789][Test123]]";
my $val = ($string =~ /\[([^\]]+)/g)[1];
print $val;
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/
Taulmarill
 2006-08-10 13:31
#68808 #68808
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
natürlich ist das möglich, es stellt sich nur die frage, wie du die stelle definierst, an der der zu holende string steht. eine möglichkeit währe so:
Code: (dl )
1
2
3
my $string = "   * [[Test789][Test123]]";
my ( $teilstring ) = $string =~ /\]\[([^\]]+)/;
print "$teilstring\n";
\n\n

<!--EDIT|Taulmarill|1155202333-->
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
redpantyhose
 2006-08-11 14:56
#68809 #68809
User since
2005-12-08
12 Artikel
BenutzerIn
[default_avatar]
Ganz andere Lösung ...

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/perl

use strict;
use warnings;

my $string = " * [[Test789][Test123]]";

# " * [[" am Anfang wegschnippeln
$string =~ s/^.*\[\[//g;

# "]]" am Ende wegschnippeln
$string =~ s/\]\]$//g;

# In Array @string wursten ...
my @string = split("\\]\\[",$string);

# Zweites Element in Array @string ausgeben
print $string[1] . "\n";

# Oder letztes Element in Array @string ausgeben
print $string[-1] . ';.)' . "\n";
\n\n

<!--EDIT|redpantyhose|1155294220-->
Crian
 2006-08-11 15:26
#68810 #68810
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Schau dir Renees Lösung nochmal genau an ;)
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
<< >> 5 Einträge, 1 Seite



View all threads created 2006-08-10 13:25.