Cree una expresión regular que acepte una cadena de expresión regular como entrada y verifique si es válida. Básicamente, su expresión regular debería poder validarse. (Cualquier expresión regular no válida no debe validarse, por lo que no puede usarla .*
.)
Su sabor debe ser totalmente compatible con implementaciones bien conocidas (Perl, sed, grep, gawk, etc.), y debe ser totalmente compatible con lo que esas implementaciones admiten. [No te preocupes por el abogado habla; Solo estoy tratando de eliminar cualquier posible escapatoria para los *** inteligentes.]
Lo codificaría , pero me preocupa que les dé una ventaja a aquellos que conocen y usan sabores no ricos en características. ¿O son mis preocupaciones infundadas?
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
fuente
fuente
Respuestas:
Rubí
Traté de hacer coincidir la sintaxis real del sabor de la expresión regular de Ruby tanto como sea posible, pero hay algunas peculiaridades: acepta algunos aspectos retrospectivos que en realidad no son válidos (como
(?<=(?<!))
) y reconoce rangos de caracteres vacíos comoD-A
. Este último podría repararse para ASCII, pero la expresión regular es lo suficientemente larga como es.Versión ilegible:
fuente