Привет
Я работаю над отличным приложением, которое требует от меня выделения (добавления интервалов) для искомого слова. Например, с учетом приведенного ниже текста:
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]
Слово youtube, содержащееся в href или в iframe, должно игнорироваться.
На данный момент у меня есть следующий код:
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]
Может ли кто-нибудь помочь мне с регулярным выражением, которое может выбирать только слова, которые не содержатся в ссылках или других тегах.
Спасибо