닫는 XML 태그를 제외하고는 모두 제거하기 위해 정규식을 작성하려고합니다.특정 닫는 태그를 보유하는 Java 정규식
코드는 간단한데 :
String stringToParse = "<body><xml>some stuff</xml></body>";
Pattern pattern = Pattern.compile("</[^(a|em|li)]*?>");
Matcher matcher = pattern.matcher(stringToParse);
stringToParse = matcher.replaceAll("");
그러나,이 실행될 때, 그것은 닫는 태그 "XML"를 건너 뜁니다. 컴파일 된 그룹 (a | em | li)에 일치하는 문자가있는 태그를 건너 뛰는 것 같습니다. 즉, "li"에서 "l"을 제거하면 작동합니다. "<body><xml>some stuff
"(나는 오프닝 태그를 제거하기 위해 추가 분석을하고 있지만, 예를 들어 간단 유지하고) :
나는이 다음과 같은 문자열을 반환 할 것으로 예상합니다.
stringToParse의 최종 값을 원하는대로 명시 적으로 표시하고 대신 무엇을 얻을 수 있습니까? –
이것은 보안에 민감한 일부 작업의 일부로 보입니다. 정규식 아이디어를 잊어 버리고 대신 ** 실제 ** 파서를 사용하는 것이 좋습니다. "stringToParse"라는 변수의 이름을 지정했지만 regex를 사용하면 ** 구문 분석을하지 않습니다 **. – BalusC