Ejemplo:¿El cuantificador {0} tiene sentido en algunos escenarios?
/(?: Foo) {0} bar/
vi algo como esto en otra respuesta. Al principio pensé "¿qué debería ser eso?", Pero luego, "OK podría tener sentido, una especie de aspecto negativo detrás", por lo que Foo
no está permitido antes de bar
, pero esto no está funcionando.
se puede ver este here on Regexr: Se coincide sólo con bar
pero también coincide con el bar
en Foobar
.
cuando agrego un ancla para el inicio de la fila:
/^(?:Foo){0}bar/
se comporta como espero. Solo coincide con bar
y no con bar
en Foobar
.
Pero eso es exactamente el mismo comportamiento que si solo usara /bar/
o /^bar/
.
¿Es el cuantificador {0}
solo un efecto secundario inútil, o hay realmente un comportamiento útil para eso?
Eso es increíble, Kobi. Esto solo es útil en un motor que tiene subrutinas pero no '(? (DEFINE))', creo que solo es Ruby y probablemente Python con el módulo 'regex'. Probado en Ruby: '(? :(Foo)) {0} bar \ g <1>' +1000! – zx81
En caso de que alguien esté interesado, no está trabajando en Python con el módulo 'regex'. Pero se le ocurrió esta alternativa, que funciona: '(? :(Foo) $ ^)? Bar (? 1)' – zx81