Thread Noch eine Frage zu Regulären Ausdrücken (20 answers)
Opened by jan999 at 2009-11-27 18:23

Linuxer
 2009-11-27 18:51
#128676 #128676
User since
2006-01-27
3881 Artikel
HausmeisterIn

user image
Hi, alternativ zur Regex-Lösung:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
#! /usr/bin/perl
use strict;
use warnings;
my $text = 'abc;def;ghi';
my $such = 'DEF';

# finde string $such in $text ohne Ruecksicht auf gross/KLEIN 
if ( index( lc($text), lc($such), 0 ) >= 0 ) {
  print "Treffer";
}
else {
  print "kein Treffer";
}


perldoc -f index
perldoc -f lc

edit: added:
Diese aufgezeigte Lösung akzeptiert allerdings auch Suchstrings, die die Mustertrenner beinhalten.
Will sagen, wenn Du $such = 'c;D' verwendest, wird das ebenfalls Treffer bringen.

Die Frage ist, wie genau kennst Du die Eingabedaten und wie zuverlässig sind sie?
Und auch, wie genau willst Du die Suche haben? Soll sie eine Regex-Suche ermöglichen, oder nicht?

Ein anderer Ansatz könnte beispielsweise sein:

  • Datenstring beispielsweise mit einem Text::CSV-Modul einlesen und Felder in einen Array ausgeben lassen. Wenn beispielsweise "a;bc" ein gültiger Wert wäre, kann man kein einfaches split() nutzen, um die Werte zu ermitteln.
  • mit einem grep() auf den Array kann man dann mit mittels Regex oder index() kontrollieren, ob eines der Felder den Suchbegriff enthält.


edit2: Ansatzbeschreibung etwas ausformuliert.
Last edited: 2009-11-27 20:52:06 +0100 (CET)
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 Noch eine Frage zu Regulären Ausdrücken