0

很长一段时间以来,我一直试图解决这个问题。

我想更改字符串中每个出现的 url,如下所示:

    int i = 0
    string.for each occurrence of ("/some static part/" + ${this could be anything}) {

    replace with "/some other static part" + i + "/some other static part/"

    i++
    }

这是我能描述它的最好方式。

我不能使用 replaceAll,因为 url 的结尾部分确实发生了变化,并且将其更改为的 url 也发生了变化。

有任何想法吗?

4

2 回答 2

1
def searchStatic = 'first static part'
def dynamicPart = 'some dynamic part'
def pattern = "${searchStatic}${dynamicPart}"

def replaceStatic1 = 'first static bit of replacement'
def replaceStatic2 = 'second static bit of replacement'

def idx = 0
url = url.replaceAll(pattern) { replaceStatic1 + idx++ + replaceStatic2 }

不是最优雅或最简洁的,但它完成了我相信你的问题所问的问题。

于 2013-07-16T14:44:22.623 回答
1

Groovy 模板正是您正在寻找的:

def url='someurl"${dynamicPart}"abc.com'
def engine = new groovy.text.SimpleTemplateEngine() 
paramsMap=[dynamicPart : "someDynamicPart"]
template = engine.createTemplate(url).make(paramsMap)
println template.toString()

希望有帮助!!

于 2013-07-16T12:35:39.770 回答