Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
exrex — 正则表达式中的不规则方法 | Kitploit
工具/GitHubGitHub/asciimoo/exrex
通用工具Payload生成模糊测试
GitHubasciimoo/exrex

exrex

正则表达式中的不规则方法

查看仓库
9579829个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

EXREX

正则表达式的非正则方法。

Exrex 是一个命令行工具和 Python 模块,能够生成给定正则表达式的所有或随机匹配字符串,以及更多功能。 它纯 Python 实现,无外部依赖。

有些正则表达式具有无限匹配字符串(例如:[a-z]+),在这种情况下,exrex 会限制无限部分的最大长度。

Exrex 使用生成器,因此内存使用量不依赖于匹配字符串的数量。

Version Downloads

功能

  • 生成所有匹配字符串
  • 生成随机匹配字符串
  • 计算匹配字符串的数量
  • 简化正则表达式

安装

要安装 exrex,只需:

root@kitploit:~
$ pip install exrex

或

root@kitploit:~
$ easy_install exrex

用法

作为 Python 模块

root@kitploit:~
>>> 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])

命令行用法

root@kitploit:~
> 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         详细模式

示例:

root@kitploit:~
$ exrex '[asdfg]'
a
s
d
f
g

$ exrex -r '(0[1-9]|1[012])-\d{2}'
09-85

$ exrex '[01]{10}' -c
1024

Bug

有 Bug 或建议?请访问 问题跟踪器。

文档

http://exrex.readthedocs.org/en/latest/

待办事项

  • 命令行开关以更改默认字符集/范围/范围限制(例如对于 '.'、'\s' 等)(40%)
  • 扩展类别 (re.sre_parse.CATEGORIES) (30%)
  • 改进 setup.py
  • 代码更详细
  • 文档
  • 优化
  • 生成 n 个不同的随机匹配字符串
  • 减少内存使用 (100%?) - 生成器
  • 计算匹配字符串的数量 - (100%?)
  • Unicode 支持 (100%)
  • 处理组引用 (100%)
  • Python3 兼容性 (100%) (>= python3.3)

许可证

root@kitploit:~
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)'

类似项目

生成匹配给定模式的所有可能字符串列表的工具:

  • regldg (网站上有实时演示)
  • regex-genex (支持同时使用多个正则模式)

逐个生成匹配给定模式的随机字符串的工具:

  • randexp.js (网站上有多个实时演示)
  • rstr.xeger (Python 模块 rstr 的一个方法)

性能分析

  • python -m cProfile exrex.py '[a-zA-Z][a-zA-Z][a-zA-Z][a-zA-Z]' -o /dev/null
  • python -m cProfile exrex.py '[0-9]{6}' -o /dev/null
下载工具