이 질문은 내가 생각하기에이 포럼에서 또 다른 질문의 파생물이지만, 결국은 어려운 것으로 밝혀졌습니다.정규식 검색은 어떻게 작동합니까?
OP는 xyz
의 모든 부분 문자열 <tagname>xyz</tagname>
을 NEW TEXT
으로 바꿔야합니다.
String str="<tagname>bgerh</tagname>sdfghuhjg<tagname>bgew</tagname>rwesdgrhtf<tagname>bfgh</tagname>";
System.out.println(str.replaceAll("(?<=(<tagname>)).*(?=(</tagname>))","NEW TEXT"));
출력은 내가 가진 : 분명히 원하는 것이 아니다
<tagname>NEW TEXT</tagname>
나는 다음과 같은했다.
그래서 정규 표현식 검사가 문자열의 양쪽 끝에서 발생하는지 알고 싶습니다. 예제에 대한 해결책으로 기뻐할 것입니다. 미리 감사드립니다.
플러스의 일반적인주의 사항 : 중첩 된 태그가 발생하자마자 모든 것이 고장납니다. 정규 표현식은 XML과 같은 중첩 구조를 처리하는 도구가 아닙니다. –
나는 불필요한 내부 괄호를 제거하기 위해 자유를 택했습니다. –