특정 문자 세트 또는 EOL까지 모든 것을 일치시키는 방법은 무엇입니까?줄 끝 맞추는 방법?
[=]+.*?[()|$]
경기 : ==test)
가 일치하지 않습니다 ==test
왜 라인 정규식 앵커 $
의 끝이 제 2 문에 대해 고려되지 않는 이유는 무엇입니까?
특정 문자 세트 또는 EOL까지 모든 것을 일치시키는 방법은 무엇입니까?줄 끝 맞추는 방법?
[=]+.*?[()|$]
경기 : ==test)
가 일치하지 않습니다 ==test
왜 라인 정규식 앵커 $
의 끝이 제 2 문에 대해 고려되지 않는 이유는 무엇입니까?
실제로 문자가 아니기 때문에 줄 끝은 문자 클래스에서 작동하지 않습니다. 그것은 제로 너비 어설 션입니다 (문자열의 현재 지점에서 조건을 테스트하지만 실제로 문자를 먹지는 않습니다).
(?:otherstuffhere|$)
으로 테스트하십시오.
참고 : 일치하는 하위 그룹과 문자 클래스를 혼동하는 것처럼 보입니다. 문자 클래스 [...]
은 대괄호 안에있는 한 문자와 일치합니다. [a|bc]
은 a
, |
, b
또는 c
중 하나와 일치합니다. 일치하는 하위 그룹은 여러 개의 표현식을 원하는 것입니다. (...)
은 캡처가 가능한 하위 그룹입니다. (?:...)
은 캡처가없는 일치하는 하위 그룹입니다.
$
의 일치 동작은 설정에 따라 여러 줄의 문자열이 다를 수 있습니다. 각 행의 끝 또는 문자열의 끝과 일치 할 수 있습니다.
\z
항상은 사용하는 설정에 관계없이 문자열 끝에 만 일치합니다. \Z
은 문자열의 끝에 일치하거나 맨 끝에있는 개행 직전과 일치합니다.
좋아요, 그래서 내 경험치는 다음과 같이 평가할 겁니다.'(? : [()] | \ z)' – membersound
'Pattern.MULTILINE'을 사용하면'(? : [()] | $)'는 대괄호 나 줄 끝과 일치합니다. – MikeM