Heim  >  Artikel  >  Backend-Entwicklung  >  Kann Regex vertikale „X“-Muster in ASCII-Grafiken erkennen und zählen?

Kann Regex vertikale „X“-Muster in ASCII-Grafiken erkennen und zählen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-16 12:15:03474Durchsuche

Can Regex Detect and Count Vertical

Vertikale X-Muster in ASCII mit Regex finden

Problemstellung

In einem ASCII-Bild wie unten:

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

Wir wollen das folgende Muster erkennen:

X
X
X

wo drei Xs vertikal ausgerichtet sind.

Fragen

  1. Kann festgestellt werden, ob solche Formationen existieren? Regex verwenden?
  2. Wenn ja, ist es möglich, die Anzahl der Vorkommen zu zählen?

Antwort auf Frage 1

Ja, der folgende Regex kann das Vorhandensein identifizieren von vertikalen 🎜>

Indirekte Lösung
(?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

Um die Anzahl der Formationen zu zählen, können wir die folgende Substitution durchführen:

wobei Regex das obige Muster ist. Die resultierende Zeichenfolgenlänge entspricht der Anzahl der Übereinstimmungen.

Online-Demo: https://regex101.com/r/Tx6R63/1

Das obige ist der detaillierte Inhalt vonKann Regex vertikale „X“-Muster in ASCII-Grafiken erkennen und zählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn