Php 正则表达式使用空格失败

Php 正则表达式使用空格失败,php,html,css,regex,Php,Html,Css,Regex,$match=数组(“~(?:face\=[\'”]?(\w+[\'”]?)~i',“~~i”) $replace=array('font-family:$1;','') 我想用具有“style”属性的新元素替换具有“face”属性的旧元素,但是当“face”属性中的字体名称包含空格时,正则表达式总是失败,例如:Courier new。如何修改正则表达式以解决此问题?将\w+替换为+以包含所有字符,而不仅仅是“word”字符。或除'以外的所有字符,如下所示:[^\']+ 更新版本: $match

$match=数组(“~(?:face\=[\'”]?(\w+[\'”]?)~i',“~~i”)
$replace=array('font-family:$1;','')


我想用具有“style”属性的新元素替换具有“face”属性的旧元素,但是当“face”属性中的字体名称包含空格时,正则表达式总是失败,例如:Courier new。如何修改正则表达式以解决此问题?

\w+
替换为
+
以包含所有字符,而不仅仅是“word”字符。或除
'
以外的所有字符,如下所示:
[^\']+

更新版本:

$match = array('~(?:face\=[\'"]?([^\']+)[\'"]?)~i', '~~i');
$replace = array('font-family:$1;', '<span style="$1">');
$match=array(“~(?:face\=[\'”]?([^\']+)[\'”]?)~i',“~i');
$replace=array('font-family:$1;','');

使用正则表达式解析HTML通常不是一个好主意。但是我的HTML很简单,所以我不需要使用DOM来解析它:)