1

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

前:

${person.dog.name}

后:

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

我需要在 Eclipse 编辑器中使用它,并且内部会发生变化。


这也很有用:

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

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

${person.dog.name}

变得

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

2 回答 2

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}" />">

于 2013-06-11T16:00:01.000 回答
-1

只需捕获整个字符串,^(.*)$然后在替换函数中使用使用反向引用<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\"/>在替换字段中使用。

于 2013-06-11T15:26:04.633 回答