【发布时间】:2011-08-20 16:49:18
【问题描述】:
嗨 我正在开发一个 groovy 应用程序,该应用程序需要我突出显示(添加跨度)到要搜索的单词。例如给定以下文本:
youtube
[href="youtube.com] i am here , in Youtube[/a]
我想搜索“youtube”这个词,当它返回时,上面的文本应该是这样的:
[span]youtube[span]
[href="youtube.com] i am here , in [span]Youtube[/span] [/a]
必须忽略 href 或 iframe 中包含的 youtube 字词。 目前我有以下代码:
def m = test =~ /([^<]*)?(youtube)/
println m[0]
def highLightText = { attrs, body ->
def postBody = attrs.text
def m = postBody =~ /(?i:${attrs.searchTerm})/
def array = []
m.each{
array << it as String
}
array.unique()
String result = postBody
array.each{
result = result.replaceAll("${it}", "<span class='highlight'>${it}</span>")
}
out << result
}
然后它返回:
[span]youtube[span]
[href="[span]youtube[span].com] i am here , in [span]Youtube[/span] [/a]
谁能帮我一个正则表达式,它只能选择不包含在链接或其他标签中的单词。
谢谢
【问题讨论】: