You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Rust中如何使用正则表达式实现从右侧查找的rfind功能?

Rust 正则rfind最简实现方案

直接使用regex库内置的find_iter方法迭代所有匹配项,取最后一项即可实现和rfind完全一致的效果,不需要手动反转正则表达式、也不需要生成反转字符串,代码可读性和性能都更优。

示例代码如下:

#[static_init::dynamic]
static r: Regex = regex::Regex::new(r"a\d").unwrap();
let s = "123a123a456";

if let Some(last_match) = r.find_iter(s).last() {
    println!("start: {:#?}", last_match.start());
    println!("end: {:#?}", last_match.end());
}

以上代码输出结果和你原来的反转方案完全一致,无需修改原有正则表达式,也没有额外的字符串分配开销。如果是处理超长字符串且匹配项极多的极端场景,再考虑反转方案即可,普通业务场景下该方法是最优选择。

内容的提问来源于stack exchange,提问作者Just a learner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 06:48:03