我确实有以下字符串:
\"lengthSeconds\":\"2664\"
我想与这个正则表达式匹配:
Regex::new("lengthSeconds\\\":\\\"(\\d+)\\\"")
我什至尝试过这个:
Regex::new(r#"lengthSeconds\":\"(\d+)\""#)
但我得到这个:
regex parse error:
lengthSeconds\":\"(\d+)\"
^^
error: unrecognized escape sequence
正则表达式模式有什么问题?
通过使用 r#..#,您可以将字符串视为原始字符串,因此不处理任何转义。但是,由于反斜杠是 Regex 中的特殊字符,因此 Regex 表达式本身仍然需要您对反斜杠进行转义。所以这
Regex::new(r#"\\"lengthSeconds\\":\\"(\d+)\\""#)
就是你想要的。
或者,你可以写
Regex::new("\\\\\"lengthSeconds\\\\\":\\\\\"(\\d+)\\\\\"").unwrap();
产生相同的结果。
看到这个Rust Playground 上的示例
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)