我正在研究遗留代码。此问题仅限于Eclipse IDE(尤其是Eclipse正则表达式)。一些代码不再有效,因此我希望立即编辑这些语句。
这是JSP中的语句示例。
<%!
int score = 100;
%>
<script for=window event=onload>
doSomething();
console.log("Your point is <%= score %>")
</script>
我想做的就是这样。
这是我为此所做的
(<script).*(event).*(onload)(.*)(>)(.*)(</script>)
<script> window.addEventListener('load', function(){ $6 }, false); </script>
替换正则表达式所以我想要的最终形式是这样的。
<script>
window.addEventListener('load', function(){
doSomething();
console.log("Your point is <%= score %>")
}, false);
</script>
我试图将(?m)
放在搜索正则表达式的最前面,但是我没有用。
如何在Eclipse中使用正则表达式将多行内容作为一个组来获取?
感谢
在您的正则表达式中,将所有.
替换为[\s\S]
以处理多行内容,并将所有*
(贪婪)替换为*?
(非贪婪)以仅匹配一个<script>
元素,而不是第一个到最后一个<script>
元素(如果文件包含多个<script>
元素):
(<script)[\s\S]*?(event)[\s\S]*?(onload)([\s\S]*?)(>)([\s\S]*?)(</script>)