如何在Rust中删除HTML中的所有空格和ASCII元素(如“\n”)?

3
我正在编写一个从亚马逊提取产品数据的程序,但我不确定如何规范化HTML中的空格。
fn parse_html(html: std::string::String) {
    let fragment = Html::parse_fragment(&html);
    let product_title = Selector::parse(".s-line-clamp-2").unwrap();

    for title in fragment.select(&product_title) {
        let title_txt = title.text().collect::<Vec<_>>();
        println!("{:?}", title_txt);
    }
}

这段代码可以正常运行,但获取到的数据会像这样:["\n \n \n \n\n\n\n\n", "\n \n \n \n ", "男士运动鞋", "\n \n \n \n \n", "\n\n \n"]

我只需要这个:["男士运动鞋"]


1个回答

5

您可以使用trim来从字符串的末尾移除空格,使用filter来从向量中移除空字符串:

let title_txt = title
    .text()
    .map(|s| s.trim())
    .filter(|s| !s.is_empty())
    .collect::<Vec<_>>();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接