
Métodos irregulares en expresiones regulares
Métodos irregulares para expresiones regulares.
Exrex es una herramienta de línea de comandos y un módulo de Python que genera todas - o aleatorias - las cadenas que coinciden con una expresión regular dada y más. Es Python puro, sin dependencias externas.
Hay expresiones regulares con infinitas cadenas coincidentes (ej.: [a-z]+), en estos casos exrex limita la longitud máxima de las partes infinitas.
Exrex usa generadores, por lo que el uso de memoria no depende del número de cadenas coincidentes.
Características
Para instalar exrex, simplemente:
$ pip install exrex
o
$ easy_install exrex
>>> import exrex
>>> exrex.getone('(ex)r\\1')
'exrex'
>>> list(exrex.generate('((hai){2}|world!)'))
['haihai', 'world!']
>>> exrex.getone('\d{4}-\d{4}-\d{4}-[0-9]{4}')
'3096-7886-2834-5671'
>>> exrex.getone('(1[0-2]|0[1-9])(:[0-5]\d){2} (A|P)M')
'09:31:40 AM'
>>> exrex.count('[01]{0,9}')
1023
>>> print '\n'.join(exrex.generate('This is (a (code|cake|test)|an (apple|elf|output))\.'))
This is a code.
This is a cake.
This is a test.
This is an apple.
This is an elf.
This is an output.
>>> print exrex.simplify('(ab|ac|ad)')
(a[bcd])
> exrex --help
usage: exrex.py [-h] [-o FILE] [-l] [-d DELIMITER] [-v] REGEX
exrex - regular expression string generator
positional arguments:
REGEX REGEX string
optional arguments:
-h, --help show this help message and exit
-o FILE, --output FILE
Output file - default is STDOUT
-l N, --limit N Max limit for range size - default is 20
-c, --count Count matching strings
-m N, --max-number N Max number of strings - default is -1
-r, --random Returns a random string that matches to the regex
-s, --simplify Simplifies a regular expression
-d DELIMITER, --delimiter DELIMITER
Delimiter - default is \n
-v, --verbose Verbose mode
Ejemplos:
$ exrex '[asdfg]'
a
s
d
f
g
$ exrex -r '(0[1-9]|1[012])-\d{2}'
09-85
$ exrex '[01]{10}' -c
1024
¿Errores o sugerencias? Visita el rastreador de incidencias.
re.sre_parse.CATEGORIES) (30%)n cadenas coincidentes aleatorias diferentesexrex is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
exrex is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with exrex. If not, see < http://www.gnu.org/licenses/ >.
(C) 2012- by Adam Tauber, <[email protected]>
exrex '( {20}(\| *\\|-{22}|\|)|\.={50}| ( ){0,5}\\\.| {12}~{39})'exrex '(o|O|0)(_)(o|O|0)'Herramientas que generan una lista de todas las cadenas posibles que coinciden con un patrón dado:
Herramientas que generan cadenas aleatorias, una por una, que coinciden con un patrón dado:
rstr de Python)python -m cProfile exrex.py '[a-zA-Z][a-zA-Z][a-zA-Z][a-zA-Z]' -o /dev/nullpython -m cProfile exrex.py '[0-9]{6}' -o /dev/null