Tom: PCRE: wieviel Leerzeichen frisst eine Wortgrenze?

Hello,

ich habe nun in den letzten Wochen fleißig geübt mit den Regular Expressions, aber ich krieg das immer noch nicht auf den Schirm, wo ich ausfühliche Information zu Wortgrenzen finde.

Und dann fragte "Thomas Schmieder" wieder lauter wilde Sachen...
   Und dann fragte "Th.Schmieder" wieder lauter wilde Sachen...
   Und dann fragte "Th.  Schmieder" wieder lauter wilde Sachen...
   Und dann fragte:th.schmieder, lauter wilde Sachen...

Also mein Name soll gefischt werden..

/\bth(omas)*\bschmieder\b/i      i=Case insensitive

war meine Idee

Meine Fragen: sind der Punkt, Komma etc. _und_ die Leerzeichen zwischen Vor- und Nachname durch das \b abgedeckt?

Gelten die Häkchen aus als Wortgrenze?

Irgendwie bastele ich seit Tagen schon daran herum uns es wird nicht fertig.

Im PCRE-Manual habe ich es nicht gefunden, aber das ist auf englisch und da übersehe ich gerne mal was...

Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

  1. Meine Fragen: sind der Punkt, Komma etc. _und_ die Leerzeichen zwischen Vor- und Nachname durch das \b abgedeckt?

    \b hat die Länge 0, matcht also gar nichts.

    Im PCRE-Manual habe ich es nicht gefunden, aber das ist auf englisch und da übersehe ich gerne mal was...

    |  \b
    |     word boundary
    | [...]
    | A word boundary is a position in the subject string where the current
    | character and the previous character do not both match \w or \W (i.e. one
    | matches \w and the other matches \W), or the start or end of the string if
    | the first or last character matches \w, respectively.

    1. Hello,

      Meine Fragen: sind der Punkt, Komma etc. _und_ die Leerzeichen zwischen Vor- und Nachname durch das \b abgedeckt?

      \b hat die Länge 0, matcht also gar nichts.

      Danke. Das ist der entscheidende Hinweis.
      Dann muss ich da leider nochmal ran und einige der \b austauschen und/oder ergänzen.

      Hab ich was zu tun und Ihr Eure Ruhe ;-))

      Harzliche Grüße vom Berg
      http://bergpost.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

  2. echo $begrüßung;

    Meine Fragen: sind der Punkt, Komma etc. _und_ die Leerzeichen zwischen Vor- und Nachname durch das \b abgedeckt?
    Gelten die Häkchen aus als Wortgrenze?
    Im PCRE-Manual habe ich es nicht gefunden, aber das ist auf englisch und da übersehe ich gerne mal was...

    Reicht dir auch das PHP-Handbuch, Seite PCRE Pattern Syntax?

    Da gibt es keine Anker, deswegen als Zitat:

    »A word boundary is a position in the subject string where the current character and the previous character do not both match \w or \W (i.e. one matches \w and the other matches \W), or the start or end of the string if the first or last character matches \w, respectively.«

    Gefunden unterhalb der Auflistung, in der \b und \B enthalten ist. Über der Auflistung befindet sich auch noch eine Definition von \w und \W:

    »A "word" character is any letter or digit or the underscore character, that is, any character which can be part of a Perl "word". The definition of letters and digits is controlled by PCRE's character tables, and may vary if locale-specific matching is taking place. For example, in the "fr" (French) locale, some character codes greater than 128 are used for accented letters, and these are matched by \w.«

    echo "$verabschiedung $name";