Vinzenz Mai: Tausender-Trennzeichen entfernen und Regulärer Ausdruck für HTML

Beitrag lesen

Hallo,

» if (preg_match('%.*Win' /></dt>
»                 <dd>(.*?)</dd>%s', $inhalt, $b)) {
»     $wins = $b[1];
» }

  • Wieso du % als Begrenzer nimmst, leuchtet mir nicht ein, aber egal (du kannst z.B. = nehmen...)

warum nicht? Es leuchtet ein, dass er den Slash nicht will. Das Gleichheitszeichen ist ebenfalls sehr irritierend; ich vermiede es in jedem Fall. Das Prozentzeichen finde hier angemessen gewählt.

  • ich würde immer mit \s* bzw. \s+ nach whitespace suchen

ja, der Abschnitt von <dt> bis <dd> ist mutig :-)

  • erwartest du nut Zahlen? dann \d+ nehmen.

Ziffern bitte ;-) Ein weiterer sinnvoller Verbesserungvorschlag.

  • statt (.*?) kannst du hier auch ([^<]*) benutzen

warum kompliziert, wenn es auch einfach geht?

Wenn die RegExpe matchen, ist es immer noch wichtig, sich den Inhalt von $b anzuschauen.

Alternativ wäre es eine Idee, den zugegebenermaßen komplizierten Handbuchabschnitt zu Arrays [1] durchzuarbeiten oder sich daran zu erinnern, welchen numerischen Index PHP für das erste Arrayelement vergibt, wenn keine explizite Schlüsselzuordnung vorgenommen wird.

Freundliche Grüße

Vinzenz

[1] vor der entscheidenden Information gibt es noch zwei Hinweise zum
    gleichen Thema, die in die Irre führen könnten.