1
일치하지 않는 문자열이있는 일부 Java 코드와 일치 시키려고합니다. 내가 가진,일치하지 않는 하위 문자열의 정규식
protected String methodName(String args[]) {
final String METHOD = "wrongMethodName";
...
}
을 내가하지 지금
protected String methodName(String args[]) {
final String METHOD = "methodName";
...
}
일치 싶어 다음 코드 블록 예를 들어, 내가 일치시킬 다음 코드 블록을 DOTALL를 필요로하는 다음 (작동하지 않는) 정규 표현식은 사용 가능 :
(\w+?)\(.*?\) ?{.*?METHOD *= *".*?";
내가 정규식 COMP하지 않는 캡처 그룹과 뒤에 부정적인 모습을 시도하는 경우 왜냐하면 뒤의 크기가 손에 잡히지 않았기 때문입니다.
java.util.regex.PatternSyntaxException:
Look-behind group does not have an obvious maximum length near index 39
내가 캡처 그룹과 일치하지 않는 문자열을 일치 할 말을 나는이 정규식에 캡처 그룹을 사용할 수있는 방법이 있나요? 그렇지 않으면를
(\b\w+?\b)\(.*?\) ?{.*?METHOD *= *"(?!\1).*?"
내가 첫 번째 그룹도 단어 경계를 사용 here on Regexr
를 참조하십시오
왜 마지막 문자열과 일치하지 않는가? METHOD = \\ "\\ p {L} * \\"; "" 당신이 원하는 것을 더 구체적으로 표현할 수 있습니까? 잘못되고 올바른 메소드 이름 문자열이 무엇인지 알고 있습니까? –