我正在处理的示例文本。此文本是一个工具提示,存储在数据库中,用户可以使用WYSIWYG编辑器进行编辑。
示例工具提示:
BlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlahBlah
BlahBlahBlahBlah <a href="[SOME_COMPLETE URL]">BlahBlah</a>
BlahBlahBlahBlahBlahBlahBlahBlah
简而言之,我需要将href替换为我的app中的javascript函数:
<a href="www.myurl.com/page/page/page">BlahBlah</a>
转到:
<a href="javascript:void(0);" onclick="openOrFocus('www.myurl.com/page/page/page', 'windowName')">BlahBlah</a>
我正在尝试编写一个RegEx表达式来查找href标记,获取引号之间的所有内容。然后我需要使用上面的代码替换引号之间的所有内容,并将URL放在函数调用中。
这是我尝试过的但是它不起作用(我在使用正则表达式时很难)
myTooltipText.replaceAll(".*href\\s*=\\s*\(.*)\"","href=\"javascript:void(0);\" onclick="openOrFocus('[SOME_COMPLETE_URL]', 'windowName')";
我正在使用Java和Groovy。
编辑:网址永远不变;当他们进入深度上下文帮助时,他们会根据工具提示进行更改。
答案 0 :(得分:1)
在.*
之前您不需要href
,并且您正试图在您的捕获组中转义它的左括号。您还错过了替换文本中的引号,并在 replaceAll 函数末尾的结尾括号)
处取消了。
请尝试以下操作,在您的引号和对替换中捕获组$1
的引用之间进行捕获。
myTooltipText.replaceAll("href\\s*=\\s*\"([^\"]*)\"", "href=\"javascript:void(0);\" onclick=\"openOrFocus('$1', 'windowName')\"");
请参阅Working demo