是否有正则表达式来替换字符串的外部部分,同时保留内部部分?
之前:
${person.dog.name}
后:
<c:out value="${person.dog.name}"/>
我需要在Eclipse编辑器中使用它,内部部分会改变。
这也很有用:
搜索:\$\{(.*?)\}
替换:\$\{fn:escapeXml\($1\)\}
${person.dog.name}
成为
${fn:escapeXml(person.dog.name)}
答案 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}}在替换字段中。