-1

可能重复:
preg_replace 如何在 PHP 中用 " 包围字符串的 html 属性

如何用于更改带有双引号的单词preg_replace()内部< >和之后的所有单词=

$var="<myfootball figure=thin new=aux(comment); > this=Association football < name=football >"

$var="<myfootball figure="thin"  new="aux(comment);" >this=Association footballl<  name="football"  >"

这样做的正则表达式是什么preg_replace()

4

2 回答 2

3

替换(?<==)(\b\w+\b)(?!")(?=[^<]*>)"$1"

$var = preg_replace('/(?<==)(\b\w+\b)(?!")(?=[^<]*>)/', '"$1"', $var);

编辑(基于 OP 的评论和问题更新)>>

替换(?<==)(\b\S+?)(?=[\s>])(?!")(?=[^<]*>)"$1"

$var = preg_replace('/(?<==)(\b\S+?)(?=[\s>])(?!")(?=[^<]*>)/', '"$1"', $var);
于 2012-11-10T19:34:26.197 回答
1

我认为最好把它放在 2 个正则表达式中。第一个表达式匹配 and 之间的所有内容<>第二个表达式引用 之后的文本=

 $value = preg_replace_callback('|<(.*?)>|', function($matches) {
      // $matches[1] is now the text between < and >
      return '<'.preg_replace('|=(\w+)|', '="\\1"', $matches[1]).'>';
 }, $var);
于 2012-11-10T19:31:34.160 回答