Heim > Backend-Entwicklung > PHP-Tutorial > 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
Freigeben: 2024-11-16 12:15:03
Original
540 Leute haben es durchsucht

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.....
Nach dem Login kopieren

Wir wollen das folgende Muster erkennen:

X
X
X
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage