是否有正则表达式来替换字符串的外部部分,同时保持内部部分?
前:
${person.dog.name}
后:
<c:out value="${person.dog.name}"/>
我需要在Eclipse编辑器中使用它,而内部的变化。
这可能是太有用:
搜索:\$\{(.*?)\}
替换:\$\{fn:escapeXml\($1\)\}
${person.dog.name}
成为
${fn:escapeXml(person.dog.name)}
是否有正则表达式来替换字符串的外部部分,同时保持内部部分?
前:
${person.dog.name}
后:
<c:out value="${person.dog.name}"/>
我需要在Eclipse编辑器中使用它,而内部的变化。
这可能是太有用:
搜索:\$\{(.*?)\}
替换:\$\{fn:escapeXml\($1\)\}
${person.dog.name}
成为
${fn:escapeXml(person.dog.name)}
查找表达:
(\$\{[^\}]+\})
和替换表达式是:
<c:out value="$1"/>
要找到${person.dog.name}
在Eclipse编辑器<c:out value="${person.dog.name}"/>
!
编辑:
要小心,而使用它,因为<c:if test="${foo}">
会落得像
菊第一捕获整个字符串^(.*)$
然后在替换功能使用使用像<c:out value="$1"/>
一个反向引用,其中$1
是反向引用
string.replaceAll("^(.*)$", "<c:out value=\"$1\"/>")
在Eclipse see link。你会把^(.*)$
分成find
,<c:out value="$1"/>
换成。选择正则表达式,点击查找并替换。
如果你正在寻找捕捉所有${foo}
与<c:out value="${foo}"/>?
在一些较大的文本,那么你将不得不使用正则表达式([$]{foo})
找到那么所有所需的文本在替换字段使用<c:out value=\"$1\"/>
。
被警告说,到目前为止propsed正则表达式替换将发生故障的硬盘上的结构,如'',''等等,你不想用''或' FN:将escapeXml()'。 –
BalusC