>백엔드 개발 >PHP 튜토리얼 >Regex가 ASCII Art에서 수직 'X' 패턴을 감지하고 계산할 수 있습니까?

Regex가 ASCII Art에서 수직 'X' 패턴을 감지하고 계산할 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-16 12:15:03551검색

Can Regex Detect and Count Vertical

정규식을 사용하여 ASCII에서 수직 X 패턴 찾기

문제 설명

아래와 같은 ASCII 이미지에서:

....X.......
..X..X...X....
X.X...X..X.....
X....XXXXXX.....
X..XXX...........
.....X..........
..............X
..X...........X....
..X...........X....X...
....X.....

저희는 다음 패턴을 탐지하는 것을 목표로 합니다.

X
X
X

여기서 세 개의 X가 세로로 정렬되어 있습니다.

질문

  1. 정규식을 사용하여 이러한 형태가 존재하는지 확인할 수 있습니까?
  2. 그렇다면 숫자를 셀 수 있습니까? 발생 횟수는?

질문에 대한 답변 1

예, 다음 정규 표현식은 수직 X 형태의 존재를 식별할 수 있습니다.

(?xm)                    # ignore comments and whitespace, ^ matches beginning of line
^                        # beginning of line
(?:
    .                    # any character except \n
    (?=                  # lookahead
        .*+\n            # go to next line
        ( ?+ . )       # add a character to the 1st capturing group
        .*+\n            # next line
        ( ?+ . )       # add a character to the 2nd capturing group
    )
)*?                      # repeat as few times as needed
X .*+\n                  # X on the first line and advance to next line
?+                     # if 1st capturing group is defined, use it, consuming exactly the same number of characters as on the first line
X .*+\n                  # X on the 2nd line and advance to next line
?+                     # if 2st capturing group is defined, use it, consuming exactly the same number of characters as on the first line
X                        # X on the 3rd line

온라인 데모: https://regex101.com/r/YxPeXe /1

질문에 대한 답변 2

간접 솔루션

구성 수를 계산하기 위해 다음 대체를 수행할 수 있습니다.

regex => 

정규식은 위 패턴입니다. . 결과 문자열 길이는 일치 항목 수와 같습니다.

온라인 데모: https://regex101.com/r/Tx6R63/1

위 내용은 Regex가 ASCII Art에서 수직 'X' 패턴을 감지하고 계산할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.