2016-07-08 2 views
2

regex에서 lookbehind 사용법을 이해하는 데 몇 가지 문제가 있습니다. 모든 상단에서 내가 제 1 선행 발생 사이의 모든 일치 할 필요 MyMethod라는 및 SOMETHINGELSERegex reverse lookbehind

https://regex101.com/r/lF8yT0/4

public myMethod 
do something 

private myMethod 
do somethingelse 


(?s)(?<=(myMethod){1})(.*)somethingelse 

선택, 난 단지

을 기대하면서
private myMethod 
do somethingelse 
+0

정규식의 일치 항목으로'foo bar'가 필요한 이유는 무엇입니까? 논리를 명확히 할 수 있습니까? 당신이 준 Regex101 예제는 뭔가 다른 것을 보여줍니다. –

+0

예제가 향상되었습니다. –

답변

0

당신은 tempered greedy token 사용할 수 있습니다 : (당신이 당신의 경기 결과에 라인의 시작을 기대하기 때문에)

[^\r\n]*myMethod((?:(?!myMethod).)*?)somethingelse 
       ^^^^^^^^^^^^^^^^^^^ 

가 CR/LF 이외의 regex demo

첫 번째 [^\r\n]* 일치 0+ 문자를 참조하십시오 (?:(?!myMethod).)*?myMethod 하위 문자열을 시작하지 않는 0 개의 문자 (가능한 한 적음)와 일치합니다.