2017-09-07 1 views
0

자바의 마지막 속성을 캡처하려고합니다. 아래 코드를 조정 해 "battr"을 찾도록 도와주세요. 예를 들어 "attr"및 "battr"과 같은 속성이 있지만 아무것도 될 수 있습니다.은 문자열에서 속성 이름을 찾아야합니다.

System.out.println("<tag attr=\"val1\" battr=\"val2\"></tag>".replaceAll(".*([a-z]+\\s*=).*","$1")); 

답변

2

이 작업을 시도 할 수 있습니다 :

System.out.println("<tag attr=\"val1\" battr=\"val2\"></tag>".replaceAll(".*(\\s([a-z])+\\s*=).*", "$1") 
      .replace("=", "").trim()); 

편집 :

당신은 당신의 요구 사항에 대한 긍정적 예측을 사용할 수 있습니다

System.out.println("<tag attr=\"val1\" battr=\"val2\"></tag>".replaceAll(".*((\\s|^)([a-z])+(?==)).*", "$1").trim()); 

을 더 많은 정보 : Lookahead and Lookbehind Zero-Width Assertions

+0

대단히 감사합니다. 너는 또한 끈의 밑에를 위해 일하기 위하여 동일을 비틀어 줄 수 있는다. attr = \ "val1 \"battr = \ "val2 \"> – javapsy

+0

해결책을 시도해 보셨습니까? 이미 언급 한 문자열에 효과적입니다. . ("=", "") .torim()'(을)를 다음과 같이 대체하십시오. 문자열의 끝. –

+0

예 regex는 정상적으로 작동합니다. 줄이 ""과 같이 공백으로 시작하지 않는 유일한 속성이있는 경우 실패합니다. – javapsy

관련 문제