0

我想" € á ...使用 REGEX 从字符串中删除所有 HTML 代码。

细绳:"This is a string " € á &"

输出要求:This is a string

4

5 回答 5

1

你可以试试

$str="This is a string " € á &";
$new_str = preg_replace("/&#?[a-z0-9]+;/i",'',$str);
echo $new_str;

我希望这可能有用

描述

& - starting with 
# - some HTML entities use the # sign 
?[a-z0-9] - followed by
;- ending with a semi-colon
i - case insensitive. 
于 2012-05-30T06:59:11.487 回答
0
$str = preg_replace_callback('/&[^; ]+;/', function($matches){
    return html_entity_decode($matches[0], ENT_QUOTES) == $matches[0] ? $matches[0] : '';
}, $str);

这将起作用,但不会剥离€,因为它不是 HTML 4 中的实体。如果您有 PHP 5.4,则可以使用标志ENT_QUOTES | ENT_HTML5使其与 HTML5 实体(如€.

于 2012-05-30T06:55:26.100 回答
0
preg_replace('#&[^;]+;#', '', "This is a string " € á &");
于 2012-05-30T06:51:54.817 回答
0

尝试这个:

preg_replace('/[^\w\d\s]*/', '', htmlspecialchars_decode($string));

虽然它可能会删除一些你不想删除的东西。您可能需要修改正则表达式。

于 2012-05-30T06:52:16.093 回答
0

如果您尝试完全删除实体(即:不解码它们),请尝试以下操作:

$string = 'This is a string " € á &';

$pattern = '/&([#0-9A-Za-z]+);/';
echo preg_replace($pattern, '', $string);
于 2012-05-30T06:55:47.670 回答