跳转到主要内容

从正则表达式生成唯一字符串。

项目描述

IntXeger

Build Status Documentation Code Coverage PyPI MIT

IntXeger(发音为“integer”)是一个 Python 库,用于从正则表达式生成字符串。它受到xeger库的启发,但提供了额外的功能,例如

  • xegerexrex更快。
  • 数组索引,可以将整数映射到匹配正则表达式的字符串。
  • 无重复抽样,用于生成一组匹配正则表达式的唯一字符串。

这些功能使IntXeger非常适合生成唯一标识符、顺序生成匹配字符串等应用!

安装

您可以通过运行以下命令来安装 IntXeger 的最新稳定版本:

pip install intxeger

快速入门

让我们从一个简单的例子开始,其中我们的正则表达式指定了一个只包含小写字母的两个字符字符串。

import intxeger
x = intxeger.build("[a-z]{2}")

您可以使用length属性来检查可以生成此字符串的数量,并使用get(i)方法生成第i个匹配的字符串。

assert x.length == 26**2 # there are 676 unique strings which match this regex
assert x.get(15) == 'ap' # the 15th unique string is 'ap'

此外,您可以使用sample(N)方法生成匹配此正则表达式的N个唯一字符串。注意,N必须小于或等于长度。

print(x.sample(N=10))
# ['xt', 'rd', 'jm', 'pj', 'jy', 'sp', 'cm', 'ag', 'cb', 'yt']

这是一个更复杂的正则表达式,它指定了一个时间戳。

x = intxeger.build(r"(1[0-2]|0[1-9])(:[0-5]\d){2} (A|P)M")
print(x.sample(N=2))
# ['11:57:12 AM', '01:16:01 AM']

要了解更多关于 IntXeger 提供的功能,请查看我们的文档

基准测试

此表由 benchmark.py 生成,显示了使用 xegerintxeger 生成每个正则表达式的 N 个示例所需的时间(以毫秒为单位)。

正则表达式 N xeger exrex intxeger
[a-zA-Z]+ 100 7.36 3.17 1.09
[0-9]{3}-[0-9]{3}-[0-9]{4} 100 11.59 6.25 0.8
[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4} 1000 208.62 91.3 18.28
/json/([0-9]{4})/([a-z]{4}) 1000 133.36 107.01 12.18

这里没有展示您想要的正则表达式?请查看我们的贡献指南 并提交一个pull request!

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码发行版

intxeger-0.1.1.tar.gz (14.2 kB 查看哈希值)

上传时间 源代码

构建发行版

intxeger-0.1.1-py2.py3-none-any.whl (8.9 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者