Zbuduj wyrażenie regularne, które zaakceptuje ciąg wyrażenia regularnego jako dane wejściowe i sprawdź, czy jest poprawne. Zasadniczo wyrażenie regularne powinno być w stanie samo się zweryfikować. (Wszelkie nieprawidłowe wyrażenia regularne nie powinny być sprawdzane, więc nie można ich użyć .*
;))
Twój smak musi być w pełni obsługiwany przez dobrze znane implementacje (Perl, sed, grep, gawk itp.) I musi w pełni obsługiwać obsługę tych implementacji. [Nie martw się, że prawnik przemówi; Próbuję tylko usunąć wszelkie luki w inteligentnych wersjach ***.]
Grałbym w golfa kodem , ale obawiam się, że da przewagę tym, którzy znają i używają nie bogatych w smaki smaków. Czy moje obawy są bezpodstawne?
code-challenge
code-golf
code-golf
game
sudoku
code-challenge
math
ai-player
code-challenge
sorting
rosetta-stone
code-challenge
code-challenge
programming-puzzle
code-golf
number
code-golf
maze
code-golf
math
regular-expression
code-golf
sequence
code-golf
graph-theory
code-golf
string
word-puzzle
natural-language
brainfuck
metagolf
optimized-output
fastest-algorithm
code-golf
game-of-life
cellular-automata
code-golf
puzzle-solver
grid
code-golf
combinatorics
binary-tree
popularity-contest
code-challenge
code-golf
ascii-art
kolmogorov-complexity
brainfuck
metagolf
code-golf
c
date
code-golf
word-puzzle
crossword
word-search
code-golf
code-golf
quine
code-golf
string
random
Mateen Ulhaq
źródło
źródło
Odpowiedzi:
Rubin
Próbowałem jak najlepiej dopasować faktyczną składnię smaku regularnego Ruby, ale jest kilka dziwactw: akceptuje kilka spojrzeń, które są rzeczywiście nieprawidłowe (jak
(?<=(?<!))
) i rozpoznaje puste zakresy znaków jakD-A
. Ten ostatni można naprawić dla ASCII, ale wyrażenie regularne jest wystarczająco długie.Nieczytelna wersja:
źródło