2016-08-18 1 views
0

특정 구분 기호 쌌다 문자열을 제거하는 방법. RegEx의 첫 번째 경기는 항상 가장 긴 것 같습니다. 동일한 코드에 여러 개의 블록 주석이있는 경우 첫 번째 블록 주석의 시작 부분에서 마지막 블록 주석의 끝까지 부분 문자열과 일치합니다. 이 문제를 해결하고 싶습니다. 나는 (.* 이후) 내가 코멘트 자체에 */이 없다는 것을 확인하는 것을 추가 할 수 있다고 가정한다. 그러나 RegEx (Java)가 부분 문자열의 특정 단어와 일치하지 않도록하는 방법을 모르겠습니다.자바 정규식 :</p> <pre><code>/* this is a block comment that can span across multiple lines */ // this a line comment that can only span one line </code></pre> <p>이미 블록 주석과 일치 <code>/*.**/</code> 이것을 시도 : 나는 다음과 같은 주석을 제거하려는 렉서를 쓰고

/\*.*\*/을 편집하여 여러 개의 댓글에서 일치하는 String.replaceAll()을 어떻게 중지시킬 수 있습니까? 당신은 경기 비 욕심을 만들고 싶어

+0

이것은 욕심 많은 검색이라고합니다. https://stackoverflow.com/questions/11898998/how-can-i-write-a-regex-which-matches-non-greedy – ZbyszekKr

답변

2

(I는 //\n 위해 줄 주석에 대해 동일한 솔루션을 사용할 수 있습니다). *

/\*.*?\*/ 

? 패턴이 텍스트와 일치하게 문자의 최소 금액을 찾기 위해 검색을 지시하십시오 ? 기호는 않습니다.

+0

하지만 다음과 같은 줄은주의해야합니다.''/* 주석은 "* /"로 끝나며 여러 줄을 쓸 수 있습니다 * /'(코드가 성공적으로 컴파일된다고 가정하지 않는 한). – FredK

관련 문제