正则表达式在文件列表中查找类

时间:2017-01-11 05:33:14

标签: regex visual-studio

我有一个包含类的文件列表(HTML)。

 1    <div class="homepage">...</div>
 2    <div class="abc homepage">...</div>
 3    <div class="abc homepage2">...</div>
 4    <div class="abc homepage four five">...</div>
 5    <div class="abc homepagenot five">...</div>
 6    <div class="abc homepage-not five">...</div>

我正在尝试使用正则表达式在Visual Studio中使用Regex Expressions来查找它。

我一直在尝试使用

class=".*homepage.*"

作为搜索条件,但这也是我的第5,6点。

基本上我只想要点1,2,4。

我在正则表达式中缺少什么?

4 个答案:

答案 0 :(得分:1)

您可以检查是否存在带有\b的单词边界,该单词边界查找非单词字符(并且可以是零长度)。我还为连字符添加了一个负向前瞻,因为连字符是一个非单词字符,会在\b上匹配,但您不希望列表中的第6项。

\bhomepage\b(?!-)

这里是Regex101 page

答案 1 :(得分:0)

试试class=".*homepage[ "]。这会在homepage之后查找空格或引号。

答案 2 :(得分:0)

我假设您想在class =“...”中找到单个字首页。 请参阅this正则表达式。

class=\"(.+ )*homepage( .+)*\"

答案 3 :(得分:0)

假设你只想要前4个div作为匹配,这个表达式将适合你。

homepage(?!not|-)(.*?)

var divs ="<div class='homepage'></div>"
 +"<div class='abc homepage'></div>"
 +"<div class='abc homepage2'></div>"
 +"<div class='abc homepage four five'></div>"
 +"<div class='abc homepagenot five'></div>"
 +"<div class='abc homepage-not five'></div>"
 +"<div class='abc homepage2'></div>";

var matches = divs.match(/(homepage)(?!not|-)(.+?)/g);

console.log(matches, matches.length);