从正则表达式生成唯一字符串。
项目描述
IntXeger
IntXeger(发音为“integer”)是一个 Python 库,用于从正则表达式生成字符串。它受到xeger库的启发,但提供了额外的功能,例如
这些功能使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
生成,显示了使用 xeger
和 intxeger
生成每个正则表达式的 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 查看哈希值)
关闭
intxeger-0.1.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1093c931367318b9fb2069462afdaef266e99ede40f50eeb3125d69246d9d74b |
|
MD5 | d8704ec7e41fc0bb6595839b29445e35 |
|
BLAKE2b-256 | 0ae9b4690c734e9727dea819e25b346e185eb77b3c919f2240e905b3bf4b4fff |
关闭
intxeger-0.1.1-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6a49dfa2476a41145cc3d4351f8095d5e62506c95261656f7673c75a02ffdbc5 |
|
MD5 | 15ac39505bd15bd1af38c59b7813105a |
|
BLAKE2b-256 | 90649f26f91dd0c25315e6fd0deefee7c492ba2ef29988b3424ea2f24570887e |