(?xm) ^ # Beginning of line (?: . # Any character except newline (?= # Lookahead .*+\n # Move to next line ( ?+ . ) # Add a character to capturing group 1 .*+\n # Next line ( ?+ . ) # Add a character to capturing group 2 ) )*? # Repeat as necessary X .*+\n # X on first line, advance to next line ?+ # If capturing group 1 is defined, use it X .*+\n # X on second line, advance to next line ?+ # If capturing group 2 is defined, use it X # X on third line
일치 Length 사용
PCRE 및 Perl(및 유사한 버전) 정규식을 사용하여 발생 횟수를 직접 계산할 수 없는 경우 대체 솔루션의 길이를 측정값으로 사용하는 것이 대안입니다. 다음 표현식의 모든 항목을 "$3"으로 바꾸면 결과 문자열의 길이가 개수를 제공합니다.^ (?: (?: # Match .+? characters . (?= # Count the same number on the following two lines .*+\n ( ?+ . ) .*+\n ( ?+ . ) ) )+? (?<= X ) # Till the above consumes an X (?= # That matches the following conditions .*+\n ?+ (?<= X ) .*+\n ?+ (?<= X ) ) (?= # Count the number of matches .*+\n ( ?+ . ) # Number of matches = length of ) )* # Repeat as long as there are matches on this line .*\n? # Remove the rest of the line
다음을 사용하여 일치 일치
대부분의 정규 표현식에서는 가변 길이 뒤돌아보기를 사용할 수 없지만 Java 및 .NET과 같은 일부 정규식에서는 부분적인 솔루션을 제공할 수 있습니다. LookBehind를 사용하면 대체 결과의 길이에 의존하지 않고 발생 횟수를 직접 계산할 수 있습니다.위 내용은 정규식을 사용하여 ASCII '이미지'에서 세 개의 연속된 'X' 문자의 수직 형태를 계산하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!