Regex 正则表达式:查找具有两次属性的html标记?

Regex 正则表达式:查找具有两次属性的html标记?,regex,Regex,是否可以找到任何属性声明两次的标记?更具体地说,我希望扫描html文档,并查找任何具有class=”“两次的标记 类似于: <textarea class='something' id='nomatter' name='nomatter' class='different'> 感谢您的时间和考虑 我想这取决于您在其中使用regex的上下文。你是在一个文本编辑器,还是PHP,或者其他什么 此外,您是否只是发现需要手动调整它们,还是需要进行更换 某些正则表达式引擎允许您在搜索字符串

是否可以找到任何属性声明两次的标记?更具体地说,我希望扫描html文档,并查找任何具有class=”“两次的标记

类似于:

<textarea class='something' id='nomatter' name='nomatter' class='different'>


感谢您的时间和考虑

我想这取决于您在其中使用regex的上下文。你是在一个文本编辑器,还是PHP,或者其他什么

此外,您是否只是发现需要手动调整它们,还是需要进行更换

某些正则表达式引擎允许您在搜索字符串中使用捕获的组

你可以这样做,只是为了找到他们:

<.+?\s([a-zA-Z]+?)='[a-zA-z-]+?'.*?\s\1='[a-zA-Z-]+?'.*?>

其中的
\1
引用了开头附近括号中第一个(也是唯一一个)捕获的组

另一方面,我认为在HTML属性中使用单引号很奇怪。

#/usr/bin/perl
#!/usr/bin/perl
use strict;
use warnings;

my $string = "<textarea class='something' id='nomatter' name='nomatter' class='different'>";
my @matches = ($string =~ m/<.+?class='([a-zA-Z]+?)'.*class='([a-zA-Z-]+?)'/g);
if ( scalar @matches > 1 ) { print "There is two class attributes in this line!\n"; }
严格使用; 使用警告; 我的$string=“”; my@matches=($string=~m/1){print“此行中有两个类属性!\n”;}
您可以使用以下模式:

<\w+(?:[^>]*?\sclass\s*=){2}[^>]+>
]*?\sclass\s*=){2}[^>]+>

您使用什么语言?之后您希望如何处理该属性?使用Netbeans编辑php/html文件。我现在只是想找到双类。是的,使用Netbeans编辑php/html。你的解决方案在那里不起作用,我猜它与现在能够使用捕获的组有关?