是否有正则表达式来替换字符串的外部同时保留内部?
前:
${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"/>
在 Eclipse 编辑器中${person.dog.name}查找!<c:out value="${person.dog.name}"/>
编辑:
使用时要小心,因为<c:if test="${foo}">最终会像<c:if test="<c:out value="${foo}" />">
只需捕获整个字符串,^(.*)$然后在替换函数中使用使用反向引用<c:out value="$1"/>,例如$1反向引用
string.replaceAll("^(.*)$", "<c:out value=\"$1\"/>")
在 Eclipse 中查看链接。你会放入^(.*)$,find替换<c:out value="$1"/>。选择正则表达式,点击查找和替换。
如果您希望在一些较大的文本中捕获所有${foo}内容,<c:out value="${foo}"/>?那么您必须使用正则表达式([$]{foo})来查找所有所需的文本,然后<c:out value=\"$1\"/>在替换字段中使用。