以下のような ASCII 画像内:
....X....... ..X..X...X.... X.X...X..X..... X....XXXXXX..... X..XXX........... .....X.......... ..............X ..X...........X.... ..X...........X....X... ....X.....
以下の検出を目指しますパターン:
X X X
3 つの X が縦に並んでいます。
はい、次の正規表現で垂直方向の 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
間接解
フォーメーションの数を数えるには、次の置換を実行できます:
regex =>
ここで正規表現上記のパターンです。結果の文字列の長さは一致の数と等しくなります。
オンライン デモ: https://regex101.com/r/Tx6R63/1
以上がRegex は ASCII アートの垂直の「X」パターンを検出してカウントできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。