用<c:url>标记</c:url>替换href和url

时间:2013-06-18 17:17:28

标签: regex eclipse notepad++

我正在使用表示层中的JSP和JSTL开发Web应用程序。 当我从设计师那里得到html时,我的jsp文件更新如下:

...
<link rel="stylesheet" type="text/css" href="<c:url value="/fo/inc-css/normalize.css"/>" />
<link rel="stylesheet" type="text/css" href="<c:url value="/fo/inc-css/font.css"/>" />
<link rel="stylesheet" type="text/css" href="inc-css/jquery.jscrollpane.css" />
<link rel="stylesheet" type="text/css" href="inc-css/csspie.css" />
...
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="inc-js/plugins.js" type="text/javascript"></script>
<script src="inc-js/plugins/jquery.fitvids.js" type="text/javascript"></script>
<script src="inc-js/plugins/jquery.bxslider.min.js" type="text/javascript"></script>
...
<h1><a href="/" title="Home Page">Home Page</a></h1>
...
<ul>
    <li><a href="#" title="LOG OUT">Log out</a></li>
    <li><a href="#" title="My Profile">My Profile</a></li>
    <li><a href="#" title="Help">Help</a></li>
    <li><a href="#" title="Contact Us">Contact Us</a></li>
</ul>
...

有许多href / url没有<c:url />(我没有显示整个文件,因为它很长)。我想将所有href / url替换为<c:url />标记,但#/和完整网址。例如

href="inc-css/jquery.jscrollpane.css"  

应该成为

href="<c:url value="/fo/inc-css/jquery.jscrollpane.css" />"

有人可以建议我在Notepad ++或Eclipse中搜索/替换一些模式吗?

2 个答案:

答案 0 :(得分:1)

记事本++:

你可以在find中使用它:

href="([^"<]{2,}")

在替换中,您可以使用:

href="<c:url value="/fo/\1 />"
                        ^^

^^表示正在插入捕获的组的位置。

编辑:要匹配hrefsrc,您将使用此功能:

(href|src)="([^"<]{2,}")

并替换:

\1="<c:url value="/fo/\2 />"

答案 1 :(得分:0)

在Eclipse中你可以

查找href="([^#][^\"]+)"

替换为href="<c:url value="$1" />"

虽然我认为因为你引用了引号,你可能会更好地做

替换为href="<c:url value='$1' />"