不幸的是,我必须在文本中处理错误的HTML实体,例如
&安培; middot,
而不是带有分号结尾的正确实体。
我试过
$pattern = "/^&[a-zA-Z]+?,/";
$replace = "/^&[a-zA-Z]+?;/";
$detailtext = preg_replace($pattern,$replace, $detailtext);
但它不起作用......这让我疯狂,我对正则表达式不熟悉,任何帮助都将不胜感激!
$detailtext
的示例:
$detailtext = "Unterputz-Einsätze<br>mit Federklemmen (Verbindungsklemmen nach VDE 0632). <br>Die Einsätze können wahlweise mit Standard- oder Flächenabdeckung <br>bestückt werden.<br>Wippschalter<br>10 AX 250 V&sim,<br>Ausführung: Universalschalter (Aus-Wechsel)<br>"
答案 0 :(得分:2)
你应该试试这个:
$pattern ="/(&[a-zA-Z]+),/"
$replace ="$1;";
$detailtext = preg_replace($pattern,$replace, $detailtext);
括号将捕获后跟“,”的实体,您可以使用“$ n”检索它们,n是捕获组编号。所以用“$ 1”替换后跟分号结束。
答案 1 :(得分:0)
试试这个:
$str = preg_replace("/(\&.*)(\,)/", "$1;", $str);