我有一个包含类的文件列表(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。
我在正则表达式中缺少什么?
答案 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);