描述
div
此正则表达式将捕获字符串中第一个标记的类名。该表达式确实需要选项s
,并且m
匹配所有行,点匹配新行字符。
\A.*?<div\b(?=\s)(?=(?:(?![^>])'[^']*'|"[^"]*"|.)*\sclass="([^"]*)")
如果您不知道具有类属性的第一个元素名称,则可以通过将标记名称替换为来修改表达式\w+
。捕获组 0 将包含标签名称和左括号:
``\A. ?<\w+\b(?=\s)(?=(?:(?![^>])'[^'] '|"[^"] "|.) \sclass="([^" ]*)")`
Javascript 示例
输入示例文本
<div class="a_classname a_2nd_classname">[OTHER DOM ELEMENTS HERE]</div>
代码
<script type="text/javascript">
var re = /\A.*?<div\b(?=\s)(?=(?:(?![^>])'[^']*'|"[^"]*"|.)*\sclass="([^"]*)")/;
var sourcestring = "source string to match with pattern";
var results = [];
var i = 0;
for (var matches = re.exec(sourcestring); matches != null; matches = re.exec(sourcestring)) {
results[i] = matches;
for (var j=0; j<matches.length; j++) {
alert("results["+i+"]["+j+"] = " + results[i][j]);
}
i++;
}
</script>
火柴
$matches Array:
(
[0] => Array
(
[0] => <div
)
[1] => Array
(
[0] => a_classname a_2nd_classname
)
)