RegExp - Nur Buchstaben zurückgeben

Trash

Erfahrenes Mitglied
Hallo,
irgendwie stehe ich auf dem Schlauch. Warum liefert dieses RegExp nicht "Test Name" zurück?

PHP:
<?php
error_reporting(E_ALL);
$html = '<h1>8 Test Name</h1>';

$regex = '/<h1>(^[a-zA-Z]*$)<\/h1>/ms';
preg_match($regex, $html, $matches);
var_dump($matches);

?>

Kennt jemand die Lösung? Auch

Code:
$regex = '/<h1>(\D*)<\/h1>/ms';

funktioniert nicht.

Danke!
 
1. [a-zA-Z] deckt das Leerzeichen zwischen Test und Name nicht ab.
2. Du hast nirgendwo Platz gelassen für die "8" vorne.
3. ^ und $ stehen für Anfang und Ende eine Zeile. Du hast dort in der Eingabe aber keine Zeilenumbrüche.

Dein zweites Beispiel scheitert auch an 1. bzw. 2. (\D ist ja eben KEINE Zahl, also auch nicht die 8)
 
Nabend,

die Frage ist, ob nur Wörter bzw. Wortgruppen gefunden werden sollen? Dann müsste der RegEx wie folgt lauten:
Code:
$regex = '/(^[a-zA-Z\- ]+$)/m'; // inklusive Bindestrich und Leerzeichen

Code:
[\w\- ]+ // findet a-zA-Z0-9, Unterstrich, Bindestrich und Leerzeichen

mfg aGeNET
 
Zurück