Un tipo diferente de Meta Regex Golf


42

Aviso: Siguiendo la demanda popular , he relajado un poco las reglas:

  • El tamaño máximo de expresión regular crece en 1 byte cada 5 respuestas . La respuesta N puede usar hasta 29 + ⌈N / 5⌉ bytes.
  • El puntaje de cada respuesta será (M / (30 + N / 5)) N

En regex golf, se le dan dos conjuntos de cadenas, y se le pide que cree la expresión regular más corta que coincida con todas las cadenas en el primer conjunto, pero falla en todas las cadenas en el segundo conjunto.

Eso es lo que vamos a hacer, pero cada vez que alguien responda, su expresión regular se agregará a uno de los dos conjuntos de cadenas (de su propia elección). Por lo tanto, hay un orden estricto de respuestas en este desafío.

Veamos un ejemplo:

  • Digamos que comienzo esto con abc(lo cual no haré), y lo pongo en el conjunto de partidos .
  • Entonces, una segunda respuesta válida sería a, ya que coincide con lo anterior (y no hay cadenas que deban fallar todavía). Digamos que esta respuesta va en el conjunto de fallas .
  • Ahora la tercera respuesta tiene que coincidir abcpero falla a. Una posible tercera respuesta es por lo tanto b. Pongamos esto en el conjunto de partidos .
  • La cuarta respuesta ahora tiene que coincidir abcy b, pero fallar a. No permitiremos respuestas duplicadas, por lo que sería una expresión regular válida c|b.

Lo importante es que su respuesta sea lo más breve posible. Esto puede ser trivial para las primeras respuestas, pero una vez que obtengamos algunas respuestas, debería ser cada vez más difícil obtener la coincidencia deseada en la menor cantidad de caracteres posible.

Para el desafío real, inicialmente el conjunto de coincidencias contiene PPCGy el conjunto de fallas contiene [PPCG], y ya he proporcionado la primera respuesta.

Respondiendo

La clave para entender sobre este desafío es que solo una persona puede responder a la vez y cada respuesta depende de la anterior .

Nunca debe haber dos respuestas con lo mismo N. Si dos personas responden simultáneamente por algunos N, el que respondió más tarde (incluso si es una diferencia de unos segundos) debería eliminar gentilmente su respuesta.

Para que esto funcione un poco más suave, trate de seguir los siguientes pasos cuando publique su respuesta:

  • Asegúrese de que alguien haya verificado independientemente la corrección de la respuesta anterior (y haya dejado un comentario correspondiente).
  • Tome los dos conjuntos de prueba encontrados en la respuesta anterior y escriba una expresión regular que coincida con todas las cadenas en un conjunto y ninguna en el otro.
  • Publique su respuesta en el siguiente formato:

    # N. [regex flavour] - [regex size in bytes]
    
        [regex]
    
    [link to online regex tester]
    
    [notes, explanation, observations, whatever]
    
    ### The next answer has to match the following strings:
    
        [match set]
    
    ### And fail on these strings:
    
        [fail set]
    

    ¿Dónde Nestá el número de tu respuesta? Copie [match set]y [fail set]de la respuesta anterior, y agregue su expresión regular a una de ellas.

    ¡Esto es absolutamente vital para el desafío! He proporcionado una herramienta de tablero para el desafío de ayudar con la contabilidad, y se basa en la plantilla anterior. (Ver al final de la publicación).

  • Otro usuario ahora debe revisar su envío y dejar un comentario "Corrección verificada" si su respuesta sigue todas las reglas (ver más abajo). Si no es así, deben dejar un comentario señalando cualquier falla. Luego tienes 15 minutos para solucionar esos problemas. Si no lo hace, su respuesta se considerará inválida, debería eliminarse, y alguien más puede publicar una respuesta de seguimiento a la anterior. (Si esto sucede, puede enviar una nueva respuesta en cualquier momento).

Estas regulaciones pueden parecer bastante estrictas, pero son necesarias para evitar respuestas no válidas en algún lugar de la cadena.

Reglas

  • Un usuario solo puede enviar una respuesta por período de 4 horas. (Esto es para evitar que los usuarios vean constantemente la pregunta y respondan tanto como sea posible).
  • Un usuario no puede enviar dos respuestas seguidas. (por ejemplo, desde que envié la respuesta 1 no puedo responder 2, pero podría responder 3.)
  • No edite respuestas que hayan sido verificadas. (¡Incluso si encuentras una manera de acortarlo!)
  • En caso de que se descubra un error antes en la cadena (es decir, después de que se hayan publicado las respuestas de seguimiento), la respuesta ofensiva se debe eliminar y se eliminará del conjunto de cadenas en las que las nuevas presentaciones deben fallar. Sin embargo , todas las respuestas que se han publicado desde entonces no deben cambiarse para reflejar.
  • Indique claramente un sabor en el que su expresión regular es válida. Puede elegir cualquier sabor que se pueda probar libremente en línea. Hay una buena lista de probadores en línea en StackOverflow . En particular, Regex101 y RegexPlanet deberían ser útiles, ya que admiten una amplia variedad de sabores. Incluya un enlace al probador que eligió en su respuesta. Al activar los modificadores global y multiline en el probador, puede probar todas las cadenas a la vez, una en cada línea (estos modificadores no se cuentan para el tamaño de su expresión regular, porque no son necesarios en ninguna cadena individual).
  • Su expresión regular no debe estar vacía.
  • Su expresión regular para la respuesta N no debe ser mayor de 29 + ⌈N / 5⌉ bytes. Es decir, las respuestas 1 a 5 pueden usar hasta 30 bytes (inclusive), las respuestas 6 a 10 pueden usar hasta 31 bytes ... las respuestas 31 a 35 pueden usar hasta 36 bytes. Verifique el tablero para ver cuántos caracteres puede usar la siguiente respuesta.
  • Su expresión regular no debe ser idéntica a ninguna cadena en ninguno de los conjuntos de prueba.
  • No incluya delimitadores en su envío o recuento de bytes, incluso si los usa el idioma principal correspondiente. Si su expresión regular usa modificadores, agregue un byte por modificador al tamaño de la expresión regular. Por ejemplo /foo/i, serían 4 bytes.

Tanteo

El puntaje de cada respuesta se calcula como (M / (30 + N / 5)) N , donde M es el tamaño de la expresión regular en bytes, y N es su número. La puntuación de cada usuario es el producto de todas sus respuestas. El usuario con el puntaje general más bajo gana. En el caso improbable de un empate, el usuario con el último envío gana. Aceptaré la última respuesta de ese usuario.

Si prefiere sumar puntajes, puede calcular el puntaje de cada respuesta como N * (log (M) - log (30)) y sumarlos sobre todas las respuestas. Eso dará el mismo orden de clasificación.

No hay necesidad de incluir la puntuación de una respuesta en la respuesta, sólo informar M . El panel de desafío en la parte inferior de la pregunta calculará los puntajes, y en el caso de dos puntajes muy cercanos, verificaré los resultados utilizando tipos de precisión arbitraria.

Tenga en cuenta que el puntaje de cada respuesta es inferior a 1, por lo que puede mejorar su puntaje general al proporcionar una nueva respuesta. Sin embargo, cuanto más cortos sean sus envíos, más eficientemente podrá reducir su puntaje. Además, las respuestas posteriores pueden lograr una puntuación más baja aunque sean más largas, debido al exponente creciente.

Tablero

He escrito una pequeña herramienta de Panel de control , usando fragmentos de pila, basada en el trabajo de Optimizer aquí . Espero que esto nos ayude a poner orden en estos desafíos dependientes de las respuestas.

Esto mostrará el estado actual del desafío, en particular, si hay respuestas en conflicto, si es necesario verificar una respuesta o si se puede publicar la siguiente respuesta.

También produce una lista de todas las respuestas con puntajes, así como una tabla de clasificación de todos los usuarios. Siga el formato de desafío anterior para que el panel pueda leer las cadenas relevantes de sus respuestas. De lo contrario, es posible que no esté incluido en la tabla de clasificación.

Avíseme ( idealmente en el chat ) si detecta algún error o tiene alguna idea de cómo se podría mejorar la utilidad de la herramienta.


Las reglas resultaron ser un poco más estrictas de lo que pretendía. Después de una discusión en el chat, estoy considerando relajar las reglas un poco después de que la recompensa se haya agotado. Publicaré 3 comentarios para las opciones que se me ocurren a continuación. Indique su preferencia votando en los comentarios.
Martin Ender

2
Reglas son reglas. No los cambies. Puede ser una pena que sea prácticamente imposible publicar otra respuesta, pero eso no justifica cambiar las reglas.
Martin Ender

2
Permita un byte adicional cada 10 respuestas. Correspondientemente, cambiar la puntuación de respuesta a (M / (30 + N / 10)) ^ N . Esto se aplicaría retroactivamente, por lo que la siguiente respuesta podría usar hasta 32 bytes. El cambio en la puntuación no afectaría a los dos primeros lugares en la tabla de clasificación, pero los otros usuarios se barajarían un poco.
Martin Ender

8
Permita un byte adicional cada 5 respuestas. Correspondientemente, cambiar la puntuación de respuesta a (M / (30 + N / 5)) ^ N . Esto se aplicaría retroactivamente, por lo que la siguiente respuesta podría usar hasta 35 bytes. El cambio en la puntuación no afectaría a los dos primeros lugares en la tabla de clasificación, pero los otros usuarios se barajarían un poco.
Martin Ender

44
Ustedes son extraños y retorcidos. ¿Por qué se harían esto a ustedes mismos? (Es divertido leerlo: P)
Joe

Respuestas:


5

42. Sabor a pitón - 38

\?[^w$]*\$$|^P|\w.\)|w.?\+|w\^|[^?P]P$

Probado en Regex101

La falta de entropía en las últimas respuestas me estaba afectando ... (debería haberlo hecho antes)

La siguiente respuesta tiene que coincidir con las siguientes cadenas:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P
^..(.[!)3G^w]|$)|\^.{7}$|G\)
\?[^w$]*\$$|[]^C]\w+$|w\^|\|..\)
\w.\)|\?[^-$]*\$$|[]^C]\w$|w[+^]
[]^C]\w$|\w.\)|-\$|w[+^]|\?[^w$]*\$$

Y fallar en estas cadenas:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\
[[?C(].[-!)|w]|^P|^[^C|\\]*$
[?[CP(].[-<)|w]|^P|^[^C|\\]*$
^..(.{7}$|.[3Gw!^)]|$)|G.?.?\)
^...[3w!G)]|^[^\\C|]*$|G.?.?\)
^[^C\\|]+$|G.\)|\.\)|w\^|^P|\...?]
^P|!.3|w\^|^[^C\\|]+$|\.[)$-](?!.!)
\?[^$w]*\$$|[]C^]\w$|w.]|\w.\)
\$..\\|\?[^w$]*\$$|w\^|[]^C]\w$
[]^C]\w$|\w.\)|w[[+^]|\?[^w$]*\$$
\?[^w$]*\$$|^P|\w.\)|w.?\+|w\^|[^?P]P$

Corrección verificada.
Martin Ender

Mi programa lucha por encontrar una respuesta de menos de 45 caracteres de largo ...
Vi.

@Vi. Bueno, puedo decir que existe una solución 38 al menos, pero, por supuesto, sería interesante si alguien logra bajar :)
Sp3000

11

28. Sabor a pitón - 29

\.\)|P[.$?]|w\^|^[^|C\\]*$|^P

Probado en Regex101

Se hicieron muchos retoques: el número 4 en el conjunto de pases es probablemente el mayor dolor, ya que es una subcadena de una expresión regular en el conjunto de fallas, y también comparte un sufijo con otra expresión regular en el conjunto de fallas.

La siguiente respuesta tiene que coincidir con las siguientes cadenas:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P

Y fallar en estas cadenas:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\

Corrección verificada.
Martin Ender

9

24 - Sabor a pitón - 29

^(..[^^].{4,22}\$|[^?]+\w)$|2

Probado aquí

La siguiente respuesta tiene que coincidir con las siguientes cadenas:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$

Y fallar en estas cadenas:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2

1
Corrección verificada.
fiesta

8

10. Sabor a pitón - 19

^[\w^]*$|!|]P|G]\$$

Probado en Regex101 .

La siguiente respuesta tiene que coincidir con las siguientes cadenas:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$

Y fallar en estas cadenas:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)*[^\\|]*[^\]]$

Corrección verificada.
FryAmTheEggman

8

8. Sabor ECMAScript - 14 bytes

[^?][PG]$|<|PG

Manifestación

La siguiente respuesta tiene que coincidir con las siguientes cadenas:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$

Y fallar en estas cadenas:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG

Corrección verificada.
FryAmTheEggman

Se corrigió el enlace de demostración.
Martin Ender

@FryAmTheEggman El guión leer los comentarios, pero sólo busca "corrección verificada" como un sub string (ignorando mayúsculas y minúsculas).
Martin Ender

@ MartinBüttner Gracias, es bueno saberlo.
FryAmTheEggman

3
+1 por solo hacer este desafío 10 veces más difícil
Sp3000


7

9. Sabor a pitón - 28

^[^\\|]*(\\\\)*[^\\|]*[^\]]$

Probado en Regex101

La siguiente respuesta tiene que coincidir con las siguientes cadenas:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$

Y fallar en estas cadenas:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)*[^\\|]*[^\]]$

También descubrí que esto no funciona hace un minuto. Requiere dos barras invertidas seguidas para que coincida, así que no creo que una bandera pueda salvarlo.
fiesta

Whoops ... Debería haber sido un * en lugar de +. Edité mi respuesta
ndc5057

La corrección verificada.
FryAmTheEggman

7

23. sabor PCRE - 28

([^\\}<]{3}|][^]]|^).?[$PG]$

Probado en Regex101.

La siguiente respuesta tiene que coincidir con las siguientes cadenas:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$

Y fallar en estas cadenas:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$

¿Qué [^]hacer?
fiesta

@feersum En la mayoría de los sabores, a ]como primer elemento de una clase de caracteres (después de la negación opcional), está solo ]dentro de la clase de caracteres y no se cierra (porque las clases de caracteres vacías son un poco inútiles). Entonces [^]]coincide con cualquier cosa menos ]. La notable excepción es ECMAScript, que permite clases de caracteres vacías. En ese caso []no coincide con nada, actúa como (?!)y [^]coincide con cualquier carácter, lo cual es conveniente, porque ECMAScript no tiene un smodificador, y [\s\S]es difícil escribir una lectura.
Martin Ender

Corrección verificada.
Martin Ender

7

11. Python - 29

^(.{,4}|.{9}|.{16,19}|.{5}P)$

► Prueba en RegexPlanet

Casi todas las respuestas inválidas tienen una longitud diferente a todas las válidas. Esta expresión regular hace uso de eso.

La siguiente respuesta tiene que coincidir con las siguientes cadenas:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$

Y fallar en estas cadenas:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$

Corrección verificada.
fiesta

7

29. Sabor PCRE - 28

^..(.[!)3G^w]|$)|\^.{7}$|G\)

Probado en Regex101

Esta respuesta aún funciona ...

La siguiente respuesta tiene que coincidir con las siguientes cadenas:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P
^..(.[!)3G^w]|$)|\^.{7}$|G\)

Y fallar en estas cadenas:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\

Corrección verificada.
Martin Ender

1
¡Agradable! Salvo reorganización, eso es exactamente lo que tenía
Sp3000

Estaba tratando de calcular esto usando un algoritmo genético, pero solo produjo una expresión regular de 30 caracteres ... Ahora ejecutándolo para obtener la siguiente respuesta. Resultado actual - 32 caracteres.
Vi.

@Vi Un algoritmo genético eh, ideas interesantes que tienes allí: P
Sp3000

@ Sp3000, ahora 30 caracteres ... Pero ha llegado otra respuesta, por lo que es necesario reiniciar.
Vi.

6

31. Sabor Perl - 29

[?[CP(].[-<)|w]|^P|^[^C|\\]*$

No sé cómo funciona, fue producido por mi primera incursión en algoritmos genéticos . Hay salida del programa que menciona la respuesta.

La siguiente respuesta tiene que coincidir:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P
^..(.[!)3G^w]|$)|\^.{7}$|G\)

y fallar:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\
[[?C(].[-!)|w]|^P|^[^C|\\]*$
[?[CP(].[-<)|w]|^P|^[^C|\\]*$

Corrección verificada.
Martin Ender

Jajaja, ¿utilizaste las respuestas anteriores como semillas para la población o acabó pareciéndose a la anterior?
Sp3000

Las cadenas que pasan y fallan se utilizan como bloques de construcción iniciales. Después de un tiempo, se prohibió el hovewer por ser mínimos locales. Puede ver cómo va en el registro del programa: el número entre paréntesis después de "metric =" es la medida de lo rápido que avanzamos. Es bajo por mucho tiempo, prohibimos las respuestas actuales y reiniciamos.
Vi.

(Mientras tanto, el candidato de 31 caracteres para la próxima respuesta ya se encuentra)
Vi.

Oh, el límite aumentó? No es 29? De esta manera no va a terminar pronto ... Creo que el desafío principal es encontrar la última, la última expresión regular.
Vi.

6

32. PCRE - 30 bytes

^..(.{7}$|.[3Gw!^)]|$)|G.?.?\)

Probado en Regex101

La siguiente respuesta tiene que coincidir con las siguientes cadenas :

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P
^..(.[!)3G^w]|$)|\^.{7}$|G\)

Y fallar en estas cadenas :

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\
[[?C(].[-!)|w]|^P|^[^C|\\]*$
[?[CP(].[-<)|w]|^P|^[^C|\\]*$
^..(.{7}$|.[3Gw!^)]|$)|G.?.?\)

1
Corrección verificada.
Martin Ender

¿Por qué se agrega a la lista de "falla"? Ya falla en sí mismo, por lo que puede servir como la próxima respuesta sin modificaciones. Supongo que para cada respuesta no hay elección de a qué lista se agregará.
Vi.

3
@Vi. Creo que hwnd se siente bien hoy
Sp3000

Lo haré más difícil a medida que continúe.
hwnd

5

1. Sabor ECMAScript - 2 bytes

^P

Pruébelo en Regex101.

El conjunto inicial coincidente es PPCGy el conjunto que falla [PPCG]. Por lo tanto, esta expresión regular simplemente prueba que la cadena comienza con P.

La siguiente respuesta tiene que coincidir con las siguientes cadenas:

PPCG
^P

Y fallar en estas cadenas:

[PPCG]

3
Corrección verificada.
Beta Decay

5

3. Sabor ECMAScript - 6 bytes

[^\]]$

Pruébalo aquí

La siguiente respuesta tiene que coincidir con las siguientes cadenas:

PPCG
^P

Y fallar en estas cadenas:

[PPCG]
^[P\^]
[^\]]$

1
Corrección verificada.
Beta Decay

5

7. Sabor a pitón - 16

(?<!\\..)(?!]).$

Probado en Regex101

Tengo que agregar un \ a la lista de coincidencias :)

La siguiente respuesta tiene que coincidir con las siguientes cadenas:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$

Y fallar en estas cadenas:

[PPCG]
^[P\^]
[^\]]$
^\^?P

Corrección verificada.
NinjaBearMonkey

Esto ... esto es tortuoso.
wchargin

@WChargin Gracias :) Deberías consultar algunas de las respuestas de user23013 o n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳; algunos son bastante 'tortuosos';)
FryAmTheEggman

5

12. Sabor ECMAScript - 17

!|[^?]P(CG|G..)?$

Pruébalo aquí .

La siguiente respuesta tiene que coincidir con las siguientes cadenas:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$

Y fallar en estas cadenas:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$

Corrección verificada.
Martin Ender

5

22. PCRE Flavor - 29 bytes

Como el # 22 original no se modifica durante 1 hora, supongo que se ha vuelto inválido.

^.{3,23}[.-~]..\$$|[^P?][PG]$

Manifestación

La siguiente respuesta tiene que coincidir con las siguientes cadenas:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$

Y fallar en estas cadenas:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P

1
Corrección verificada. (Y sí, es cierto, los 22 anteriores ahora no son válidos).
Martin Ender

5

26. Sabor a pitón - 28

^..(.[!G)(3w^]|.{7}$|$)|\$\?

Prueba en Regex101

La siguiente respuesta tiene que coincidir con las siguientes cadenas:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?

Y fallar en estas cadenas:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~

Corrección verificada.
Martin Ender

5

30. Sabor a pitón - 28

[[?C(].[-!)|w]|^P|^[^C|\\]*$

Probado en Regex101

Cuando hay un testamento ...

La siguiente respuesta tiene que coincidir con las siguientes cadenas:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P
^..(.[!)3G^w]|$)|\^.{7}$|G\)

Y fallar en estas cadenas:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\
[[?C(].[-!)|w]|^P|^[^C|\\]*$

Corrección verificada.
jimmy23013

5

37. Sabor Perl - 30

\?[^$w]*\$$|[]C^]\w$|w.]|\w.\)

Presentación en Regex101 .

La solución fue producida por el mismo programa que antes. El programa también ha impreso una solución de 29 caracteres \?[^$w]*\$|[]^C]\w)$|w.]|\w.\, no sé por qué, ya que parece una expresión regular mal formada ...

La siguiente respuesta tiene que coincidir con las siguientes cadenas:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P
^..(.[!)3G^w]|$)|\^.{7}$|G\)
\?[^w$]*\$$|[]^C]\w+$|w\^|\|..\)

Y fallar en estas cadenas:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\
[[?C(].[-!)|w]|^P|^[^C|\\]*$
[?[CP(].[-<)|w]|^P|^[^C|\\]*$
^..(.{7}$|.[3Gw!^)]|$)|G.?.?\)
^...[3w!G)]|^[^\\C|]*$|G.?.?\)
^[^C\\|]+$|G.\)|\.\)|w\^|^P|\...?]
^P|!.3|w\^|^[^C\\|]+$|\.[)$-](?!.!)
\?[^$w]*\$$|[]C^]\w$|w.]|\w.\)

Corrección verificada.
Martin Ender

Ahaha estoy bastante molesto No he tenido esto después de venir de tan lejos con la primera mitad: P
SP3000

5

40. PCRE - 33 bytes

[]^C]\w$|\w.\)|w[[+^]|\?[^w$]*\$$

Probado en Regex101

La siguiente respuesta tiene que coincidir con las siguientes cadenas :

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P
^..(.[!)3G^w]|$)|\^.{7}$|G\)
\?[^w$]*\$$|[]^C]\w+$|w\^|\|..\)
\w.\)|\?[^-$]*\$$|[]^C]\w$|w[+^]

Y fallar en estas cadenas :

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\
[[?C(].[-!)|w]|^P|^[^C|\\]*$
[?[CP(].[-<)|w]|^P|^[^C|\\]*$
^..(.{7}$|.[3Gw!^)]|$)|G.?.?\)
^...[3w!G)]|^[^\\C|]*$|G.?.?\)
^[^C\\|]+$|G.\)|\.\)|w\^|^P|\...?]
^P|!.3|w\^|^[^C\\|]+$|\.[)$-](?!.!)
\?[^$w]*\$$|[]C^]\w$|w.]|\w.\)
\$..\\|\?[^w$]*\$$|w\^|[]^C]\w$
[]^C]\w$|\w.\)|w[[+^]|\?[^w$]*\$$

Corrección verificada.
Vi.

1
Tengo un 35 pero no estoy satisfecho con él, así que voy a ver si puedo obtener algo más interesante
Sp3000

Y tengo 3 opciones para una respuesta de 32 caracteres, pero todo el desafío se volvió un poco aburrido (especialmente la contabilidad de las presentaciones de Regex101 y las listas de cadenas de error / aprobación). Si alguien quiere, puedo publicar una respuesta.
Vi.

4

4. Sabor ECMAScript - 5 bytes

^\^?P

Pruébalo aquí .

La siguiente respuesta tiene que coincidir con las siguientes cadenas:

PPCG
^P

Y fallar en estas cadenas:

[PPCG]
^[P\^]
[^\]]$
^\^?P

1
Corrección verificada.
Beta Decay

4

5. Sabor ECMAScript - 6 bytes

^[P^]P

Probado en Regex101 .

Es hora de darle un poco de sabor al conjunto de éxitos.

La siguiente respuesta tiene que coincidir con las siguientes cadenas:

PPCG
^P
^[P^]P

Y fallar en estas cadenas:

[PPCG]
^[P\^]
[^\]]$
^\^?P

Corrección verificada.
FryAmTheEggman

4

6. Sabor ECMAScript - 9 bytes

[^?][PG]$

Probado en Regex101 .

La siguiente respuesta tiene que coincidir con las siguientes cadenas:

PPCG
^P
^[P^]P
[^?][PG]$

Y fallar en estas cadenas:

[PPCG]
^[P\^]
[^\]]$
^\^?P

1
Corrección verificada.
FireFly

4

14. sabor PCRE - 25

([.$?]|G\])\$$|^\^?P|\]P$

Probado en Regex101

Esto está empezando a ponerse bastante difícil.

La siguiente respuesta tiene que coincidir con las siguientes cadenas:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$

Y fallar en estas cadenas:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$

Corrección verificada.
Martin Ender

4

15. sabor PCRE - 26

([P.$?]\$|[]^]P|G\]\$|CG)$

Probado en Regex101

La siguiente respuesta tiene que coincidir con las siguientes cadenas:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$

Y fallar en estas cadenas:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$

1
Corrección verificada.
FireFly

4

16. Sabor PCRE - 21

^[^?]*[PG]$|[?$].*\$$

Probado en Regex 101 .

La siguiente respuesta tiene que coincidir con las siguientes cadenas:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$

Y fallar en estas cadenas:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$

No coincide PPCG.
jimmy23013

@ user23013 fijo
es1024

Corrección verificada.
jimmy23013

4

25. sabor PCRE - 29

^(..[^^].{4,22}\$|[^?]+\w)$|~

Probado aquí. (La expresión regular de prueba contiene un adicional \npara asegurarse de que ninguna coincidencia abarque varias líneas. Esto no es necesario para coincidir con cada cadena individual).

¡Esa era una fruta baja! :) Sin embargo, tengo que felicitar a plannapus, esta expresión regular es increíblemente elegante para los conjuntos de prueba actuales. Si quieres votar esta respuesta, ¡asegúrate de votar también la anterior!

La siguiente respuesta tiene que coincidir con las siguientes cadenas:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$

Y fallar en estas cadenas:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~

1
Corrección verificada.
Feersum

4

35. PCRE - 35 bytes

^P|!.3|w\^|^[^C\\|]+$|\.[)$-](?!.!)

Probado en Regex101

La siguiente respuesta tiene que coincidir con las siguientes cadenas :

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P
^..(.[!)3G^w]|$)|\^.{7}$|G\)

Y fallar en estas cadenas :

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\
[[?C(].[-!)|w]|^P|^[^C|\\]*$
[?[CP(].[-<)|w]|^P|^[^C|\\]*$
^..(.{7}$|.[3Gw!^)]|$)|G.?.?\)
^...[3w!G)]|^[^\\C|]*$|G.?.?\)
^[^C\\|]+$|G.\)|\.\)|w\^|^P|\...?]
^P|!.3|w\^|^[^C\\|]+$|\.[)$-](?!.!)

Mi verificador no muestra errores.
Vi.

Corrección verificada. (@Vi., El tablero busca esta frase específica.)
Martin Ender

Pensé en usar esa frase, pero no estaba seguro si quiero hacer mi comentario autoritario.
Vi.

Mi otra respuesta de 34 caracteres mencionada anteriormente parece funcionar aquí. Esperando 4 horas (o así) ...
Vi.

No me molesto en hackear: lo delego a la computadora. Tal vez escribir un bot de publicación de respuestas utilizando la API StackExchange? ..
Vi.

4

36. Sabor a pitón - 32

\?[^w$]*\$$|[]^C]\w+$|w\^|\|..\)

Probado en Regex101

Tenía tres expresiones regulares de 32 bytes listas, y por suerte una de ellas todavía funciona: D

La siguiente respuesta tiene que coincidir con las siguientes cadenas:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P
^..(.[!)3G^w]|$)|\^.{7}$|G\)
\?[^w$]*\$$|[]^C]\w+$|w\^|\|..\)

Y fallar en estas cadenas:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\
[[?C(].[-!)|w]|^P|^[^C|\\]*$
[?[CP(].[-<)|w]|^P|^[^C|\\]*$
^..(.{7}$|.[3Gw!^)]|$)|G.?.?\)
^...[3w!G)]|^[^\\C|]*$|G.?.?\)
^[^C\\|]+$|G.\)|\.\)|w\^|^P|\...?]
^P|!.3|w\^|^[^C\\|]+$|\.[)$-](?!.!)

1
Corrección verificada.
Martin Ender

La corrección como expresión regular de Perl también se verifica.
Vi.

Esperemos que la pregunta esté inactiva hasta mañana, ya que tengo una respuesta pendiente de 30 caracteres para publicar.
Vi.
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.