2013-11-26 4 views
2

나는 접두어가 붙은 문자열과 적어도 하나의 가능한 공백 접미사의 목록을 가지고있다. 접미어 접두어 앞에는 콜론이 붙습니다. 접두사 나 접미어에는 콜론이 포함되어 있으면 안됩니다. 하나의 빈 접미사정규 표현식 대체 목록에서 반복하기

실시 예 (1) :

x: 

예 2 개의 비 빈 접미사 ("a"및 "b") 및 하나의 빈 접미사 :

x:a::b 

이 패턴의 regular expression은 :

([^:]+)(:([^:]*))* 

최초로 일치 대전 번째 프리픽스와 (3 + 2N)을 캡처 SU 캡처 ffixes (n = [0,1,2, ...]).

제 대신에 각 접미사 앞에 접두어를 붙이고 싶습니다. (1) 예 생산해야

x 

그리고 예 (2) 생산해야

xa 
x 
xb 

어떻게 교체 식을 지정해야합니까?

내 문제는 첫 번째 대체 코드가 접두사를 먹는다는 것입니다. 그 다음에는 두 번째 대체 문구가 더 이상 접두사를 보지 못합니다. 나머지 교체를 위해 접두어를 보존해야합니다. 어떻게 할 수 있습니까?

+0

나는 이해하지 못한다. "제 대신에 각 접미사 앞에 접두어를 붙이고 싶습니다." – Richard

+0

@ 리차드 첫 번째 문장은 "접두사 뒤에 문자열이옵니다."라고 쓰여 있습니다. 예제에서 x는 접두사입니다. – ceving

+1

정규식의 맛? 어떤 언어 또는 도구입니까? – Toto

답변

1

나는 접두사를 먼저 추출한 다음 교체 할 것이라고 생각합니다. 코드를 읽기 쉽게 만들 것이고, 그 시점에서 쉽게 교체 할 수 있어야합니다.

+0

내가 볼 수있는 한 [Ant's tokenfilter] (http://ant.apache.org/manual/Types/filterchain.html#tokenfilter)에는 첫 번째 일치 결과를 저장할 메모리가 없습니다. – ceving

+0

여기 키벨리에 동의합니다. 접두어를 캡처 할 때 대체 패턴을 지정하는 방법을 볼 수 없습니다. – Richard