2013-07-16 3 views
0

저는이 문제를 꽤 오랫동안 파악하려고 노력해 왔습니다.그루비에서 동적으로 URL을 변경합니다.

그래서 같은 문자열 내에서 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++ 
    } 

그게 내가 그것을 설명 할 수있는 가장 좋은 방법입니다.

URL의 끝 부분이 변경되고 변경하려는 URL도 변경되므로 replaceAll을 사용할 수 없습니다.

어떤 아이디어가 있습니까?

+0

더 좋은 방법을 설명해 주시겠습니까? 어쩌면 하나의 예 또는 3일까요? –

답변

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 } 

가장 우아하고 간결한 것은 아니지만 귀하의 질문에 대한 답을 성취했습니다.

1

그루비 템플릿은 당신이 찾고있는 무엇 : 도움이

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

희망을!

+0

당신은''$ {dynamicPart} ''없이 URL을''someurl $ {dynamicPart} abc.com ''으로하고 싶습니다. :) – dmahapatro

+0

하지만 어쨌든 내 groovyConsole에서 작동합니다. – rahulserver

관련 문제