跳转到主要内容

未提供项目描述

项目描述

regex-rust (regexrs)

利用Rust的regex crate和PyO3创建与Python标准库中re模块类似的接口。

pip install regex-rust
>>> import regexrs as re
>>> pattern = re.compile(r'(\w+) (\w+)')
>>> m = pattern.match('hello rust')
>>> m.groups()
('hello', 'rust')
>>> m.pos
0
>>> m.endpos
10
>>> re.findall(r'\w+', 'hello rust')
['hello', 'rust']
>>> re.fullmatch(r'\w+', 'foo')
<regexrs.Match object; span=(0, 3), match="foo">

基准测试

benchmark.py主要借鉴自regex-benchmark项目。您需要将input-text.txt文件的路径传递给benchmark.py

这个简单的基准测试表明,regexrs可能比标准库中的re模块或甚至regex库在某种情况下要快得多。请注意,这个基准测试只是在单个大型文本输入上测试了三个简单的用例。因此,我们可以从这个基准测试中得到的见解相当有限。在某些情况下,regexrs可能比regex慢2倍,尤其是在需要创建Match对象时。

在Windows AMD64 Python 3.12.2上测试的结果 - 时间单位为毫秒(越低越好)

测试 regexrs re (stdlib) regex 与re比较
Email 12.51 354.53 690.15 28.34倍更快
URI 4.82 282.69 430.26 58.65倍更快
IP 4.71 321.37 25.43 68.23倍更快

如何运行基准测试

# be sure to have run `pip install regex-rust` first
# to test regexrs:
python benchmark.py /path/to/input-text.txt

# to test stdlib re:
python benchmark.py /path/to/input-text.txt re

# be sure to have run `pip install regex` first
# to test regex library:
python benchmark.py /path/to/input-text.txt regex

从源安装的方法

您可以使用pip进行构建和安装。

pip install .

如果您想手动构建

pip install maturin
maturin build --release

状态

大多数功能不完整,可能存在很多错误。我主要用它来练习使用Rust和PyO3创建和分发Python扩展。不清楚这个项目是否会变得非常有用。如果您今天正在寻找一个完整且性能良好的Python正则表达式库,请查看PyPI上的regex项目

与标准库的差异

  • endpos参数通常在re模块中找到,但在regexrsmatch/search/findall/finditer方法中不受支持。
  • 某些正则表达式功能不受支持(因为这些功能在regexcrate中不受支持),例如前瞻和后引用。
  • 不是所有标志都受支持。在当前版本中,您可以使用IGNORECASEMULTILINEDOTALLVERBOSE(或它们的简写等效项)。这些标志被转换为内联标志,并添加到您提供的模式前面。
  • 在未来的版本之前,没有缓存来避免多次重新编译相同的模式

项目详情


下载文件

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

源分发

regex_rust-0.4.0.tar.gz (15.0 kB 查看哈希)

上传时间

构建分发

regex_rust-0.4.0-pp310-pypy310_pp73-win_amd64.whl (718.1 kB 查看哈希)

上传时间 PyPy Windows x86-64

regex_rust-0.4.0-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl (1.9 MB 查看哈希)

上传时间 PyPy musllinux: musl 1.1+ x86-64

regex_rust-0.4.0-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl (1.9 MB 查看哈希)

上传时间 PyPy musllinux: musl 1.1+ ARM64

regex_rust-0.4.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB 查看哈希)

上传时间 PyPy manylinux: glibc 2.17+ x86-64

regex_rust-0.4.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB 查看哈希)

上传时间 PyPy manylinux: glibc 2.17+ ARM64

regex_rust-0.4.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl (1.7 MB 查看哈希值)

上传时间: PyPy manylinux: glibc 2.5+ i686

regex_rust-0.4.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl (832.8 kB 查看哈希值)

上传时间: PyPy macOS 11.0+ ARM64

regex_rust-0.4.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl (878.6 kB 查看哈希值)

上传时间: PyPy macOS 10.12+ x86-64

regex_rust-0.4.0-pp39-pypy39_pp73-win_amd64.whl (718.3 kB 查看哈希值)

上传时间: PyPy Windows x86-64

regex_rust-0.4.0-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl (1.9 MB 查看哈希值)

上传时间: PyPy musllinux: musl 1.1+ x86-64

regex_rust-0.4.0-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl (1.9 MB 查看哈希值)

上传时间: PyPy musllinux: musl 1.1+ ARM64

regex_rust-0.4.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB 查看哈希值)

上传时间: PyPy manylinux: glibc 2.17+ x86-64

regex_rust-0.4.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB 查看哈希值)

上传时间: PyPy manylinux: glibc 2.17+ ARM64

regex_rust-0.4.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl (1.7 MB 查看哈希值)

上传时间: PyPy manylinux: glibc 2.5+ i686

regex_rust-0.4.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl (833.4 kB 查看哈希值)

上传时间: PyPy macOS 11.0+ ARM64

regex_rust-0.4.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl (879.9 kB 查看哈希值)

上传于 PyPy macOS 10.12+ x86-64

regex_rust-0.4.0-cp312-none-win_arm64.whl (665.2 kB 查看哈希值)

上传于 CPython 3.12 Windows ARM64

regex_rust-0.4.0-cp312-none-win_amd64.whl (752.0 kB 查看哈希值)

上传于 CPython 3.12 Windows x86-64

regex_rust-0.4.0-cp312-none-win32.whl (654.5 kB 查看哈希值)

上传于 CPython 3.12 Windows x86

regex_rust-0.4.0-cp312-cp312-musllinux_1_1_x86_64.whl (1.9 MB 查看哈希值)

上传于 CPython 3.12 musllinux: musl 1.1+ x86-64

regex_rust-0.4.0-cp312-cp312-musllinux_1_1_aarch64.whl (1.9 MB 查看哈希值)

上传于 CPython 3.12 musllinux: musl 1.1+ ARM64

regex_rust-0.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (985.5 kB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ x86-64

regex_rust-0.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.9 MB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ s390x

regex_rust-0.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.9 MB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ ppc64le

regex_rust-0.4.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.7 MB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ ARMv7l

regex_rust-0.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ ARM64

regex_rust-0.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl (1.7 MB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.5+ i686

regex_rust-0.4.0-cp312-cp312-macosx_10_12_x86_64.whl (879.9 kB 查看哈希值)

上传时间 CPython 3.12 macOS 10.12+ x86-64

regex_rust-0.4.0-cp311-none-win_arm64.whl (664.0 kB 查看哈希值)

上传时间 CPython 3.11 Windows ARM64

regex_rust-0.4.0-cp311-none-win_amd64.whl (752.8 kB 查看哈希值)

上传时间 CPython 3.11 Windows x86-64

regex_rust-0.4.0-cp311-none-win32.whl (654.6 kB 查看哈希值)

上传时间 CPython 3.11 Windows x86

regex_rust-0.4.0-cp311-cp311-musllinux_1_1_x86_64.whl (1.9 MB 查看哈希值)

上传时间 CPython 3.11 musllinux: musl 1.1+ x86-64

regex_rust-0.4.0-cp311-cp311-musllinux_1_1_aarch64.whl (1.9 MB 查看哈希值)

上传时间 CPython 3.11 musllinux: musl 1.1+ ARM64

regex_rust-0.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (987.2 kB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ x86-64

regex_rust-0.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.9 MB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ s390x

regex_rust-0.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.9 MB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ ppc64le

regex_rust-0.4.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.7 MB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ ARMv7l

regex_rust-0.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ ARM64

regex_rust-0.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl (1.7 MB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.5+ i686

regex_rust-0.4.0-cp311-cp311-macosx_10_12_x86_64.whl (897.4 kB 查看哈希值)

上传于 CPython 3.11 macOS 10.12+ x86-64

regex_rust-0.4.0-cp310-none-win_amd64.whl (752.9 kB 查看哈希值)

上传于 CPython 3.10 Windows x86-64

regex_rust-0.4.0-cp310-none-win32.whl (654.8 kB 查看哈希值)

上传于 CPython 3.10 Windows x86

regex_rust-0.4.0-cp310-cp310-musllinux_1_1_x86_64.whl (1.9 MB 查看哈希值)

上传于 CPython 3.10 musllinux: musl 1.1+ x86-64

regex_rust-0.4.0-cp310-cp310-musllinux_1_1_aarch64.whl (1.9 MB 查看哈希值)

上传于 CPython 3.10 musllinux: musl 1.1+ ARM64

regex_rust-0.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (987.5 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64

regex_rust-0.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.9 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ s390x

regex_rust-0.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.9 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ ppc64le

regex_rust-0.4.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.7 MB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.17+ ARMv7l

regex_rust-0.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.17+ ARM64

regex_rust-0.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl (1.7 MB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.5+ i686

regex_rust-0.4.0-cp310-cp310-macosx_10_12_x86_64.whl (896.4 kB 查看哈希值)

上传时间: CPython 3.10 macOS 10.12+ x86-64

regex_rust-0.4.0-cp39-none-win_amd64.whl (753.6 kB 查看哈希值)

上传时间: CPython 3.9 Windows x86-64

regex_rust-0.4.0-cp39-none-win32.whl (653.7 kB 查看哈希值)

上传时间: CPython 3.9 Windows x86

regex_rust-0.4.0-cp39-cp39-musllinux_1_1_x86_64.whl (1.9 MB 查看哈希值)

上传时间: CPython 3.9 musllinux: musl 1.1+ x86-64

regex_rust-0.4.0-cp39-cp39-musllinux_1_1_aarch64.whl (1.9 MB 查看哈希值)

上传时间: CPython 3.9 musllinux: musl 1.1+ ARM64

regex_rust-0.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (988.3 kB 查看哈希值)

上传时间: CPython 3.9 manylinux: glibc 2.17+ x86-64

regex_rust-0.4.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.9 MB 查看哈希值)

上传时间: CPython 3.9 manylinux: glibc 2.17+ s390x

regex_rust-0.4.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.9 MB 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.17+ ppc64le

regex_rust-0.4.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.7 MB 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.17+ ARMv7l

regex_rust-0.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.17+ ARM64

regex_rust-0.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl (1.7 MB 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.5+ i686

regex_rust-0.4.0-cp39-cp39-macosx_11_0_arm64.whl (833.8 kB 查看哈希值)

上传时间 CPython 3.9 macOS 11.0+ ARM64

regex_rust-0.4.0-cp39-cp39-macosx_10_12_x86_64.whl (878.7 kB 查看哈希值)

上传时间 CPython 3.9 macOS 10.12+ x86-64

regex_rust-0.4.0-cp38-none-win_amd64.whl (752.7 kB 查看哈希值)

上传时间 CPython 3.8 Windows x86-64

regex_rust-0.4.0-cp38-none-win32.whl (654.5 kB 查看哈希值)

上传时间 CPython 3.8 Windows x86

regex_rust-0.4.0-cp38-cp38-musllinux_1_1_x86_64.whl (1.9 MB 查看哈希值)

上传时间 CPython 3.8 musllinux: musl 1.1+ x86-64

regex_rust-0.4.0-cp38-cp38-musllinux_1_1_aarch64.whl (1.9 MB 查看哈希值)

上传时间 CPython 3.8 musllinux: musl 1.1+ ARM64

regex_rust-0.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (988.0 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ x86-64

regex_rust-0.4.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.9 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ s390x

regex_rust-0.4.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.9 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ ppc64le

regex_rust-0.4.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.7 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ ARMv7l

regex_rust-0.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ ARM64

regex_rust-0.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl (1.7 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.5+ i686

regex_rust-0.4.0-cp38-cp38-macosx_11_0_arm64.whl (834.0 kB 查看哈希值)

上传于 CPython 3.8 macOS 11.0+ ARM64

regex_rust-0.4.0-cp38-cp38-macosx_10_12_x86_64.whl (879.0 kB 查看哈希值)

上传于 CPython 3.8 macOS 10.12+ x86-64

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面