如何在Eclipse编辑器中搜索$ {foo}并替换为<c:out value =“$ {foo}”>?</c:out>

时间:2013-06-11 15:18:56

标签: regex eclipse jsp escaping el

是否有正则表达式来替换字符串的外部部分,同时保留内部部分?

之前:

${person.dog.name}

后:

<c:out value="${person.dog.name}"/>

我需要在Eclipse编辑器中使用它,内部部分会改变。


这也很有用:

搜索:\$\{(.*?)\}

替换:\$\{fn:escapeXml\($1\)\}

${person.dog.name}

成为

${fn:escapeXml(person.dog.name)}

2 个答案:

答案 0 :(得分:0)

使用以下内容查找表达式:

(\$\{[^\}]+\})

并替换表达式为:

<c:out value="$1"/>

在Eclipse编辑器中使用${person.dog.name}查找<c:out value="${person.dog.name}"/>

修改

使用它时要小心,因为<c:if test="${foo}">最终会像<c:if test="<c:out value="${foo}" />">

一样

答案 1 :(得分:-1)

只需使用^(.*)$捕获整个字符串,然后在替换函数中使用后引用,例如<c:out value="$1"/> $1是后向引用

string.replaceAll("^(.*)$", "<c:out value=\"$1\"/>")

在日食see link中。您将^(.*)$放入find<c:out value="$1"/>进行替换。选择正则表达式,单击查找和替换。

如果您希望在某些较大的文字中捕获所有${foo} <c:out value="${foo}"/>?,那么您必须使用正则表达式([$]{foo})找到所有想要的文字,然后使用{ {1}}在替换字段中。