42 个版本 (稳定)
69.8.1 | 2022年8月9日 |
---|---|
69.8.0 | 2022年7月2日 |
69.7.1 | 2021年10月2日 |
69.7.0 | 2021年6月9日 |
0.6.0 | 2016年1月31日 |
444 在 文本处理 中排名
376,036 每月下载量
在 240 个包中使用(通过 onig)
2.5MB
88K SLoC
包含 (神秘的自动配置代码,3KB) oniguruma/configure.ac
Rust Onig
Rust 对 Oniguruma 正则表达式库 的绑定,这是一个功能强大且成熟的正则表达式库,支持广泛的字符集和语言语法。Oniguruma 使用 C 语言编写。此存储库提供两个包:提供原始 Rust FFI 绑定的 onig-sys
和提供它们的安全 Rust 包装的 onig
。
文档
查看 模块文档 以获取所有可用的功能信息。要查看此包的示例用法,请查看 示例文件夹。示例可以通过以下命令行运行: cargo run --example <examplename>
。
入门指南
将以下内容添加到您的 Cargo.toml
文件中
[dependencies]
onig = "6"
如果您的版本不是 2018,请将以下 extern 添加到您的包根目录中
extern crate onig;
您可以使用 Regex::new
编译简单的正则表达式,使用 Regex::is_match
检查模式是否匹配整个 &str
,使用 Regex::find
在 &str
中查找匹配项。`onig` 包还提供了这些方法的更强大版本,这些版本可以公开 Oniguruma 提供的广泛选项。
use onig::*;
let regex = Regex::new("e(l+)").unwrap();
for (i, pos) in regex.captures("hello").unwrap().iter_pos().enumerate() {
match pos {
Some((beg, end)) =>
println!("Group {} captured in position {}:{}", i, beg, end),
None =>
println!("Group {} is not captured", i)
}
}
链接
如果可以通过 pkg-config
找到 Oniguruma 的版本,则将使用该版本。如果没有,则将从头编译 Oniguruma 并将其链接到 onig-sys
包。
默认情况下,`rust-onig` 将与 libonig
静态链接。如果您希望使用动态链接,则可以在 Unix 上设置环境变量 RUSTONIG_STATIC_LIBONIG
和 RUSTONIG_DYNAMIC_LIBONIG
。
$ RUSTONIG_DYNAMIC_LIBONIG=1 cargo build
或者 Windows
> set RUSTONIG_DYNAMIC_LIBONIG=1
> cargo build
由 libclang/llvm 引起的构建错误
默认情况下,`onig` 使用 bindgen
生成对 libonig 的绑定。如果您计划只使用捆绑的 libonig 版本,则可以通过禁用默认的 generate
功能来使编译更快、更可靠。
[dependencies]
onig = { version = "6", default-features = false }
调试
有时调试 Oniguruma 如何解析、编译、优化或执行特定模式很有用。
当为此包激活 print-debug
功能时,Oniguruma 将带有调试信息进行编译。请注意,这是一个编译时设置,因此您还需要使用 RUSTONIG_SYSTEM_LIBONIG
确保不使用系统 Oniguruma。
结合所有这些,以下是一个用于调试模式 a|b
的示例命令
RUSTONIG_SYSTEM_LIBONIG=0 cargo run --features print-debug --example capturedump 'a|b'
支持的 Rust 版本
Rust Onig 支持 Rust 1.50.0 或更高版本,适用于 Windows、Linux 和 macOS。如果最低支持的 Rust 版本 (MSRV) 发生变化,则次要版本号将增加。这意味着 v6.4.x 应始终使用相同的编译器版本进行编译。
Rust-Onig 是开源的
此存储库的内容根据 MIT 许可证分发。有关详细信息,请参阅 LICENSE。如果您想贡献力量,请查看我们的开源 简单问题。