Heim > Backend-Entwicklung > PHP-Tutorial > Können Sie mit Regex vertikale Linien aus drei „X' in einem ASCII-Bild finden?

Können Sie mit Regex vertikale Linien aus drei „X' in einem ASCII-Bild finden?

Patricia Arquette
Freigeben: 2024-11-08 12:42:02
Original
951 Leute haben es durchsucht

Can You Find Vertical Lines of Three 'X's in an ASCII Image Using Regex?

Vertikale Regex-Übereinstimmung in einem ASCII-Bild

Das Problem

In einem ASCII-Bild wie:

....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' Ich möchte eine einfache vertikale Linienformation aus drei PHP, Perl, .NET oder ähnliche reguläre Ausdrücke können wir den folgenden Ausdruck verwenden:

Frage 2: Zählen solcher Formationen

(?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
Einfaches Matching

Für Da es sich um eine direkte Übereinstimmung handelt und die Anzahl der Übereinstimmungen erforderlich ist, kann diese Frage aufgrund der begrenzten Lookbehind-Unterstützung nicht direkt in PCRE oder Perl gelöst werden.

Längen-/indirekte Lösung

Wenn jedoch Wird die Antwort als Länge eines Spiels oder einer Auswechslung akzeptiert, kann sie mit folgendem Ausdruck beantwortet werden:

Das obige ist der detaillierte Inhalt vonKönnen Sie mit Regex vertikale Linien aus drei „X' in einem ASCII-Bild finden?. 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