Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]7766[/thread]

regex: sich wiederholende zeichen ermitteln



<< |< 1 2 >| >> 13 Einträge, 2 Seiten
Froschpopo
 2006-03-07 00:39
#63509 #63509
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
ich hab nen string:

"ahsdwhdw....aodhz9"

jetzt brauch ich ein match, welches mir anzeigt, wenn sich ein zeichen mehr als 3 mal, unmittelbar hintereinander wiederholt.
In diesem fall sind das die ".".
gibts da irgendwie ne lösung mit {,3} oder sowa? aber wie sieht dann der regex aus für die einzelnen zeichen?\n\n

<!--EDIT|Froschpopo|1141684922-->
Strat
 2006-03-07 01:25
#63510 #63510
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
du willst, dass ein zeichen matcht und dann dasselbe zeichen noch zweimal? da faellt mir jetzt nur das folgende ein:
Code: (dl )
$string =~ /(.)\1\1/
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Froschpopo
 2006-03-07 01:33
#63511 #63511
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
sauber! Besten dank!\n\n

<!--EDIT|Froschpopo|1141688367-->
lichtkind
 2006-03-07 01:38
#63512 #63512
User since
2004-03-22
5679 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
scheint das selbe wie $1
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
Dubu
 2006-03-07 01:42
#63513 #63513
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
$1 kann man nur im Ersetzungsteil benutzen, \1 ist für den Suchteil.




Edit: tttypo\n\n

<!--EDIT|Dubu|1141688590-->
vayu
 2006-03-07 10:21
#63514 #63514
User since
2005-01-13
782 Artikel
BenutzerIn
[default_avatar]
Stichwort back-references :)
Froschpopo
 2006-03-22 19:43
#63515 #63515
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
kann man noch irgendwie integrieren, dass er auch sich wiederholende sätze matcht?
also z.b. "hallo hallo hallo hallo" ?
renee
 2006-03-22 20:44
#63516 #63516
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
/(?:hallo\s?)+/
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/
Froschpopo
 2006-03-22 21:17
#63517 #63517
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
[quote=renee,22.03.2006, 19:44]/(?:hallo\s?)+/[/quote]
Mein String ist variabel und den Inhalt kenne ich nicht.
Dein Beispiel läuft ja nur mit "Hallo"\n\n

<!--EDIT|Froschpopo|1143055087-->
Linuxer
 2006-03-22 21:27
#63518 #63518
User since
2006-01-27
3870 Artikel
HausmeisterIn

user image
Der erste Ansatz mit {,3} war schon nicht ganz verkehrt... .s.u.

Code (perl): (dl )
$text =~ m/(?:.+){3,}/ ;


Sollte auf einen beliebigen String passen, der sich mindestens 3mal wiederholt.

Alle drei Perldocs zum Thema RegEx sind interessant zum Thema RegEx ;o)
perldoc perlretut
perldoc perlrequick
perldoc perlre

[edit]
Z.B. aus http://perldoc.perl.org/perlre.html ; Stichwort Quantifier:
Quote
The following standard quantifiers are recognized: metacharacter quantifier * + ? {n} {n,} {n,m}

* Match 0 or more times
+ Match 1 or more times
? Match 1 or 0 times
{n} Match exactly n times
{n,} Match at least n times
{n,m} Match at least n but not more than m times

[/edit]\n\n

<!--EDIT|Linuxer|1143055861-->
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!
<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2006-03-07 00:39.