정규식 연산자의 우선순위(..|.. ... ..|..)
정규식에서는 파이프(|) 연산자의 우선순위는 왼쪽에서 오른쪽입니다. 즉, 입력 문자열과 일치하는 첫 번째 대안이 선택되고 이후의 대안은 모두 무시됩니다.
이 동작은 프로그래밍 언어에서 평가되는 대부분의 다른 이항 연산자의 동작과 대조됩니다. 오른쪽에서 왼쪽으로. 예를 들어, 1 2 * 3 수식에서는 곱셈 연산이 먼저 수행되어 값이 6이 됩니다. 그런 다음 덧셈 연산이 수행되어 최종 값이 8이 됩니다.
왼쪽에서 왼쪽으로 -파이프 연산자의 올바른 우선 순위는 정규식의 맥락에서 의미가 있습니다. 이를 통해 대안을 역추적하고 다시 평가할 필요 없이 가능한 가장 효율적인 방법으로 표현식이 입력 문자열과 일치할 수 있습니다.
RegexOptions.RightToLeft 수정자는 우선 순위에 영향을 주지 않는다는 점에 유의하는 것이 중요합니다. 파이프 운영자의. 이 수정자는 정규식 엔진이 입력 문자열을 검사하는 방향에만 영향을 미칩니다.
예를 들어 다음 정규식은 입력 문자열 "bbac"에서 문자열 "bb"가 처음 나타나는 항목과 일치합니다.
(aaa|bb|a)
Regex.Match를 사용하여 "bbac"에서 일치하는 항목을 찾는 경우 얻은 값은 "bb"입니다. 이는 정규식에서 "bb" 대안이 "a" 대안 앞에 나타나고 정규식 엔진은 일치 항목이 발견되면 대안 평가를 중단하기 때문입니다.
Regex.Matches를 사용하여 모든 일치 항목을 찾는 경우 "bbac"에서는 "bb"와 "a"가 모두 결과에 포함됩니다. 이는 Regex.Matches가 나타나는 순서에 관계없이 정규 표현식의 모든 대안을 평가하기 때문입니다.
위 내용은 우선 순위가 정규식 파이프 연산자 일치에 어떤 영향을 미칩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!