0

我想改进我的代码,但我不知道如何编写正则表达式。

我想在标签中获取所有非 xhtml 属性。

所以在预赛之后我想得到:

array(
  0 => "required",
  1 => "autocomplete"
);

$balise = <input id="myId" class="myClassA myClassB myClassC" required autocomplete/>;

我实际上使用这个preg_match_all("/(?<=\s)[\w]+(?=[\s\/>])/i", $balise, $attributs);

但是使用正则表达式我得到:

array(
  0 => "myClassB",
  1 => "required",
  3 => "autocomplete"
);

我不想得到myClassB...

谁能帮我写我的正则表达式?

谢谢

4

1 回答 1

1

您可以添加负前瞻(?![^=]*?")以确保下一个“不会在下一个 = 之前,这样您只会得到不在引用值内的单词。单引号字符串以便“在正则表达式不会终止它。

preg_match_all('/(?<=\s)[\w]+(?=[\s\/>])(?![^=]*?")/i', $balise, $attributs);
于 2013-07-25T13:15:43.280 回答