Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正则表达式匹配HTML标记和属性_Php_Regex - Fatal编程技术网

Php 正则表达式匹配HTML标记和属性

Php 正则表达式匹配HTML标记和属性,php,regex,Php,Regex,我正在尝试匹配html标记名及其属性。在下面的示例中,我试图匹配div、class、style和id $html='<div class="nav" style="float:left;" id="navigation">'; preg_match_all("/(([^<]\w+\s)|(\S+)=)/", $html, $match); 您可以使用以下简单的正则表达式: (?<=<)\w++|\b\w++(?==) 但是,如果您使用多个捕获括号,并且希望得到唯

我正在尝试匹配html标记名及其属性。在下面的示例中,我试图匹配
div
class
style
id

$html='<div class="nav" style="float:left;" id="navigation">';
preg_match_all("/(([^<]\w+\s)|(\S+)=)/", $html, $match);

您可以使用以下简单的正则表达式:

(?<=<)\w++|\b\w++(?==)
但是,如果您使用多个捕获括号,并且希望得到唯一数组中的结果,则可以使用该功能。示例(不带环视仪):


preg_match_all('~(?|您可以使用以下简单的正则表达式:

(?<=<)\w++|\b\w++(?==)
但是,如果使用多个捕获括号,并且希望结果为唯一数组,则可以使用该功能。例如(不带lookarounds):


preg_match_all('~(?|您可以使用以下简单的正则表达式:

(?<=<)\w++|\b\w++(?==)
但是,如果使用多个捕获括号,并且希望结果为唯一数组,则可以使用该功能。例如(不带lookarounds):


preg_match_all('~(?|您可以使用以下简单的正则表达式:

(?<=<)\w++|\b\w++(?==)
但是,如果使用多个捕获括号,并且希望结果为唯一数组,则可以使用该功能。例如(不带lookarounds):


preg\u match\u all('~(?)如何使用正则表达式实现这一点。不要使用正则表达式进行HTML解析。请使用特殊的解析器。我只是在试验正则表达式。在实际项目中,我可能会使用解析器,但我想知道如何使用正则表达式实现这一点。不要使用正则表达式进行HTML解析。请使用特殊的解析器。我只是在试验正则表达式。在实际项目中,我可能会使用语法分析器,但我想知道如何使用regex实现这一点。太好了。这似乎给出了我想要的结果。我不确定您为什么像在
\w++
中那样使用双
++
。我尝试了
(?@user1448031:我添加了一些关于这件奇怪事情的参考资料。太好了。这似乎给出了我想要的结果。我不知道你为什么在
\w++
中使用双
++
。我尝试了
(?@user1448031:我添加了一些关于这件奇怪事情的参考资料。太好了。这似乎给出了我想要的结果。我不知道你为什么在
\w++
中使用双
++
。我尝试了
(?@user1448031:我添加了一些关于这件奇怪事情的参考资料。太好了。这似乎给出了我想要的结果。我不确定你为什么在
\w++
中使用双
++
。我尝试了
(?@user1448031:我添加了一些关于这件奇怪事情的参考资料。