Thread regex: Matching von >:( und :( (2 answers)
Opened by Froschpopo at 2012-12-21 02:08

Linuxer
 2012-12-26 12:41
#164409 #164409
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
Ich erkenne Dein Problem nicht wirklich; außerdem ist Dein gezeigter Ausdruck fehlerhaft.
Du hast eine unmaskierte ) da drin, die auch keine öffnende Entsprechung hat.

Wenn Du eine Liste von Alternativen hast, dann sollte diese auch von Links nach Rechts abgearbeitet werden. Und der erste Treffer ist dann auch der Treffer.

Wenn >:( als Alternative vor :( steht, dann sollte es auch auf ">:(" passen.


Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#! /usr/bin/perl
use strict;
use warnings;

my $smiley_regex = qr{
(                      # Capture the match
  >:\(
|
  :\(
|
  :\|
|
  :drinking:
)
}x;


while ( my $line = <DATA> ) {
     if ( $line =~ $smiley_regex ) {
         print "$. ", $1, "\n";
     }
}

__DATA__
:-)
>:(
:o)
:-/
:(
:drinking:
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread regex: Matching von >:( und :(