gpt4 book ai didi

rust - 如果索引范围无效,则获取 None 而不是字符串切片

转载 作者:行者123 更新时间:2023-11-29 08:22:01 24 4
gpt4 key购买 nike

我想检查字符串是否以 "|<any char><any char>TD" 开头.我已验证该字符串仅包含 0..9、a-z、A-Z、空格、',' 和 '*'。

为这样的任务包含正则表达式箱的开销太大,相反我认为我需要类似的东西

fn get_slice(s: &str, range: Range<usize>) -> Option<&str> {
unimplemented!();
}

它可以像这样使用:

let is_good_string: bool = 
get_slice(s, (0..5)).map_or(false, |v: &str| &v[0..1] == "|" && &v[3..5] == "TD");

标准库中有没有类似我的get_slice的函数?是否有可能以其他方式借助标准库函数解决我的任务?

最佳答案

get None instead of slice if index range not valid

据我所知,标准中没有这方面的功能。

I want to check if string starts with "|<any char><any char>TD",

但为了这个目标,我提出了一个(在我看来)比切片更优雅的解决方案:

fn is_good(s: &str) -> bool {
if !s.starts_with('|') {
return false;
}
let mut td_iter = s.chars().skip(3);
(td_iter.next(), td_iter.next()) == (Some('T'), Some('D'))
}

Playground .它与任何 UTF-8 字符串兼容,并确保在读取字符串/字符边界之外的代码点时不会发生 panic 。

关于rust - 如果索引范围无效,则获取 None 而不是字符串切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42974412/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com