Regulärer Ausdruck zum Entfernen von Leerzeichen zwischen ungültigen HTML-Tags – z. B. „' sollte „' sein.
P粉884667022
P粉884667022 2023-09-02 19:56:28
0
2
435

Ich habe HTML, das durch Leerzeichen in Tags durcheinander gebracht wurde, und möchte es wieder gültig machen – zum Beispiel:

1 > Bananen< / div >

sollte in gültiges HTML konvertiert werden und soll beim Rendern Folgendes erzeugen:

1 > 0 ist true >>> Bananen

Jeder Text, dem in > oder < Leerzeichen vorangehen/folgen, sollte unverändert bleiben – zum Beispiel ;1 > 0 sollte beibehalten werden, anstatt auf 1>0

komprimiert zu werden.

Mir ist klar, dass hierfür möglicherweise mehrere reguläre Ausdrücke erforderlich sind, was in Ordnung ist.

Ich habe ein paar Dinge:

Dadurch wird teilweise korrigiert ;/b>

aber ich arbeite am Rest

Zum Beispiel könnte ich einen drastischen Ansatz wählen, aber das würde auch den Code innerhalb des Textteils des Etiketts zerstören, nicht den Etikettennamen selbst

P粉884667022
P粉884667022

Antworte allen (2)
P粉323050780

没有合理的方法来保存像您发布的内容一样损坏的文档,但假设您将文本中的>和类似字符替换为其相关实体,例如:> ;,您可以将要接受的文档放入适当的库中,例如DomDocument将处理剩下的事情。

$input = <<<_E_ < div class='test' >1 > 0 is < b >true and apples >>> bananas< / div > _E_; $input = preg_replace([ '#<\s+#', '#loadHTML($input, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD); var_dump($d->saveHTML());

输出:

string(80) "
1 > 0 is true and apples >>> bananas
"
    P粉064448449

    这个正则表达式也有效:

    它将 HTML 标记中的有效部分分为四个部分,并用其替换其余部分(空格)。

    Regex101 演示

    /(]*\S)\s*(>)/g

    • ( - 捕获起始尖括号(第 1 节)
    • \s*- 匹配任何空格
    • (\/?)- 捕获可选的反斜杠(第 2 部分)
    • \s*- 匹配反斜杠后的任何空格
    • ([^]*\S)- 捕获标签内的内容,不带尾随空格(第 3 节)
    • \s*- 匹配内容后面和右尖括号之前的空格
    • (>)- 捕获右尖括号(第 4 节)

    const reg = /(<)\s*(\/?)\s*([^<>]*\S)\s*(>)/g const str = "< div class='test' >1 > 0 is < b >true< / b > and apples >>> bananas< / div >" const newStr = str.replace(reg, "$1$2$3$4"); console.log(newStr);
      Neueste Downloads
      Mehr>
      Web-Effekte
      Quellcode der Website
      Website-Materialien
      Frontend-Vorlage
      Über uns Haftungsausschluss Sitemap
      Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!