匹配,直到使用Powershell 2.0到达字符串

时间:2017-08-17 14:18:00

标签: html regex powershell csv powershell-v2.0

我试图编写一个正则表达式,用于在CSV文件中搜索一系列网页的源代码。我使用以下内容进行匹配:

 $linkContent = $web.DownloadString($linkToBeConverted)  
 $object = [regex]::Matches($linkContent, $regex)

我试图在列表中搜索class =" menu"看它里面是否有链接。不幸的是,我似乎比我需要的方式更匹配。当我击中某个字符串时,我想要一种方法来阻止比赛。特别是div class =" test"按照下面的例子。

现在这是我的正则表达式:

(?sm)<ul class="menu">.*?(<a href="h).*?(<\/ul>)

以下是我试图搜索的源代码。如果我的正则表达式是正确的,那么这不应该是匹配的。但是,因为在第二个列表之间存在一个链接(未定义为class =&#34; menu&#34;)我得到一个匹配。我有什么方法可以编写这个正则表达式,以便在div class =&#34; test&#34;找到了吗?作为模板的结果,div class =&#34; test&#34;应始终位于菜单列表后面的代码中。

<ul class="menu">
   <li>
       <p>Yes there are paragraph tags and random stuff in these lists...</p>
   </li>
   <li>
       <div><span>Example</span>
        </div>It's pretty random
   </li>
   <li>Nothing here!</li>
</ul>
<div class="test">
<p><a href="http://match.html"></p>
<ul>
   <li>Unfortunately this will cause a match since there's another list</li>
</ul>

非常感谢您的帮助!我整个上午一直在努力工作,我完全迷失了。如果有一种方法可以在PowerShell中执行此操作,我也可以这样做。

0 个答案:

没有答案