Mathias Brodala: Regulärer Ausdruck gesucht

Beitrag lesen

Hallo Tonii.

erstmal was Allgemeines. Sind reguläre Ausdrücke in allen Scriptsprachen gleich oder ähnlich?

Ähnlich.

Kommt mir so vor, als seien die alle an Perl ausgerichtet, ist aber nur ne Vermutung, deshalb frag ich.

Nicht genau an Perl, sondern an den PCRE.

Wenn ich in einem Text die Zeilen zeilenweise durchsuche und die Zeile des Musters

[Tab oder Leerzeichen oder beides]Kunde123[Leerzeichen]50666[Leerzeichen]Köln

identifiziere und möchte durch eine Replace-Anwendung der entsprechenden Scriptsprache ausschließlich "Kunde123" erhalten, wie müßte dann z.B meine str_replace-Zeile in php heißen?

Sprachst du nicht eben noch von regulären Ausdrücken? Mit str_replace ersetzt du jedoch, wie der Name bereits impliziert, lediglich Strings durch Strings. Wenn du dich auf Stringfunktionen beschränken möchtest, eignet sich str_replace hier eher weniger.

Besser geeignet wären strrpos, strpos, sowie substr. Mit ersterem kannst du rückläufig bis zum letzten (im String also ersten, vor „Kunde123“) Vorkommen von Leerzeichen/Tabulatoren suchen; das ist dein Startindex. Mit strpos suchst du das zweite Vorkommen (somit also nach „Kunde123“). Diese beiden Werte kannst du nun nutzen, um die Länge der ermittelten Teilzeichenkette zu ermitteln, womit du die beiden erforderlichen Argumente für substr hast.

Solltest du einen regulären Ausdruck verwenden wollen, bietet sich preg_replace zum Beispiel mit folgendem Muster an:

![ \t]+([^ \t]+).*!i

Erläuterung:

[ \t]+    - Ein oder beliebig viele Leerzeichen/Tabulatoren
([^ \t]+) - Ein oder beliebig viele Zeichen AUSSER Leerzeichen/Tabulatoren, gekapselt
.*        - Irgendetwas, beliebig oft

Einen schönen Samstag noch.

Gruß, Mathias

--
ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
debian/rules