正则表达式的非正则方法。
Exrex 是一个命令行工具和 Python 模块,能够生成给定正则表达式的所有或随机匹配字符串,以及更多功能。 它纯 Python 实现,无外部依赖。
有些正则表达式具有无限匹配字符串(例如:[a-z]+),在这种情况下,exrex 会限制无限部分的最大长度。
Exrex 使用生成器,因此内存使用量不依赖于匹配字符串的数量。
功能
要安装 exrex,只需:
$ pip install exrex
或
$ 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 - 正则表达式字符串生成器
positional arguments:
REGEX 正则表达式字符串
optional arguments:
-h, --help 显示此帮助信息并退出
-o FILE, --output FILE
输出文件 - 默认为标准输出
-l N, --limit N 范围大小的最大限制 - 默认为 20
-c, --count 计数匹配字符串
-m N, --max-number N 最大字符串数量 - 默认为 -1
-r, --random 返回与正则表达式匹配的随机字符串
-s, --simplify 简化正则表达式
-d DELIMITER, --delimiter DELIMITER
分隔符 - 默认为换行符
-v, --verbose 详细模式
示例:
$ exrex '[asdfg]'
a
s
d
f
g
$ exrex -r '(0[1-9]|1[012])-\d{2}'
09-85
$ exrex '[01]{10}' -c
1024
有 Bug 或建议?请访问 问题跟踪器。
http://exrex.readthedocs.org/en/latest/
re.sre_parse.CATEGORIES) (30%)n 个不同的随机匹配字符串exrex 是自由软件:你可以根据自由软件基金会发布的 GNU Affero 通用公共许可证(许可证的第 3 版或(根据你的选择)任何后续版本)的条款重新分发和/或修改它。
exrex 的发布是希望它能起到有益的作用,但没有任何担保;甚至没有适销性或特定用途的隐含担保。有关详细信息,请参阅 GNU Affero 通用公共许可证。
你应该已经随 exrex 收到了一份 GNU Affero 通用公共许可证的副本。如果没有,请参见 < http://www.gnu.org/licenses/ >。
(C) 2012- 作者 Adam Tauber, <[email protected]>
exrex '( {20}(\| *\\|-{22}|\|)|\.={50}| ( ){0,5}\\\.| {12}~{39})'exrex '(o|O|0)(_)(o|O|0)'生成匹配给定模式的所有可能字符串列表的工具:
逐个生成匹配给定模式的随机字符串的工具:
rstr 的一个方法)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