正则表达式用于查找文本文件中的所有aspx链接 - 但不是用于替换的html

时间:2013-04-29 13:33:20

标签: asp.net regex

我认为我差不多正在使用正则表达式,例如我有以下内容:

<li id="ctl00_dashboard1_liReports" class="fade_hover tooltip" title="Reports">
    <a id="ctl00_dashboard1_HyperLink1" href="reportlist.aspx"><img id="ctl00_dashboard1_imgCheck3" src="assets/icons/dashboard/81.png" alt="Reports" style="border-width:0px;" />
        <span>Reports</span></a></li>
<li id="ctl00_dashboard1_messagetitle" class="fade_hover tooltip" title="8 new alerts">
    <a id="ctl00_dashboard1_messagelink" href="reportlist.aspx?sectionname=My+Tasks"><img id="ctl00_dashboard1_imgCheck4" src="assets/icons/dashboard/75.png" alt="My Tasks" style="border-width:0px;" />
        <span>My Tasks</span></a><span class="bubble">8</span></li>
<li id="ctl00_dashboard1_adminli" class="fade_hover tooltip" title="Admin">
    <a id="ctl00_dashboard1_lnkUser" href="/admin/useradmin.aspx"><img id="ctl00_dashboard1_imgCheck2" src="assets/icons/dashboard/54.png" alt="Admin" style="border-width:0px;" /><span id="ctl00_dashboard1_lbladmin">Admin</span></a></li>
<li id="ctl00_dashboard1_lilogout" class="fade_hover tooltip " title="End current session">
    <a id="ctl00_dashboard1_lnkLogout" href="/default.aspx"><img src="assets/icons/dashboard/118.png" id="ctl00_dashboard1_imgCheck5" alt="Logout" />
        <span>Logout</span></a></li>

我希望用href替换所有.aspx链接后使用不同的字符串。我的正则表达式几乎就在那里,但是当querrystring被击中时它会崩溃:

((&quot;|')[a-z0-9\/\.\?\=\&amp;]*(\.aspx|\.php|\.jsp)[a-z0-9\/\.\?\=\&amp;]*(&quot;|"))|(href=*?[a-z0-9\/\.\?\=\&amp;&quot;"]*)

它匹配以下内容,但您可以看到查询字符串上的=处的停靠点。任何帮助将非常感激。

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:0)

这应该做:

href=.*.aspx[0-9a-zA-Z\;\+\=\?\%\&]*

RegexPal上进行了测试。

修改:编辑以包含更多特殊字符和数字

答案 1 :(得分:0)

这个怎么样:

href=\".*.aspx[^\"]*\"

在这个正则表达式中,我们不需要包含特殊的字符和数字,因为我们可能会错过一些。