Neue Zeilenzeichen mit regulären Ausdrücken abgleichen
Beim Versuch, Zeichenfolgen zwischen
Um dieses Problem zu beheben, verwenden Sie den Modifikator DOTALL (auch bekannt als /s), der es dem Punkt (.) ermöglicht, mit jedem Zeichen, einschließlich Zeilenumbrüchen, übereinzustimmen. Versuchen Sie es mit dem folgenden Ausdruck:
'/<div>(.*)<\/div>/s'
Beachten Sie jedoch, dass der gierige Abgleich möglicherweise nicht zum gewünschten Ergebnis führt. Erwägen Sie die Verwendung eines Non-Greedy-Matches:
'/<div>(.*?)<\/div>/s'
Alternativ können Sie alles außer „<“ finden, solange keine anderen Tags vorhanden sind:
'/<div>([^<]*)<\/div>/s'
Denken Sie daran: Die Verwendung eines anderen Zeichens als „/“ als Trennzeichen (z. B. „#“) kann die Lesbarkeit verbessern, da die Notwendigkeit, „/“ innerhalb der Tags zu maskieren, entfällt. Hier ist ein Beispiel mit „#“:
'#<div>([^<]*)<\/div>'
Trotz dieser Optionen ist es wichtig, sich der Einschränkungen von Regex beim Umgang mit komplexem HTML bewusst zu sein. Verschachtelte Divs, zusätzliche Leerzeichen und andere Komplexitäten können die Regex-Analyse unzuverlässig machen. Für eine genauere Analyse sollten Sie stattdessen die Verwendung eines HTML-Parsers in Betracht ziehen.
Das obige ist der detaillierte Inhalt vonWie ordne ich Zeilenumbrüche in HTML-Tags mithilfe regulärer Ausdrücke zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!