0

我有一堆要替换的文件

request.getParameter("thischangesallthetime") 

stringescapeutils.escapehtml(request.getParameter("thischangesallthetime")); 

我可以在记事本++中做到这一点吗?我可以使用什么正则表达式?

谢谢!

4

2 回答 2

0

Search:

request.getParameter\("(.*?)"\) 

Replace

stringescapeutils.escapehtml\(request.getParameter\("\1"\)\);

EDIT: as duncan correctly points out, the matching on the search regex needs to be non-greedy if you have more than one replaceable expression on one line. I corrected the search regex to take this into account.

PS: next time please show us what you tried.

于 2012-07-16T08:41:19.193 回答
0

m0skit0 的答案是一个入门者,但如果您的字符串中应该有多个这些值,则需要对其进行修改。例子:

你好 request.getParameter("thischangesallthetime") lorem ipsum request.getParameter("foobar") 等等

需要这个正则表达式:

寻找:

request.getParameter\("(.*?)"\)

用。。。来代替:

stringescapeutils.escapehtml(request.getParameter("\1"));

这 ?在正则表达式中使其不贪婪。否则第一场比赛(在'thisvaluechangesallthetime')将在第二场比赛(在'foobar')中抓住最后一个“)

而且您不需要在正则表达式的替换部分中转义括号。

如果没有 ?,您最终会得到以下结果:

hello stringescapeutils.escapehtml(request.getParameter("thischangesallthetime") lorem ipsum request.getParameter("foobar")); blah

请注意,在 ("foobar") 参数之后,escapehtml 括号才结束!

于 2012-07-16T09:09:52.460 回答