想要通过VSCode去从:e10d3a.mp3 2015-09-23 09:10 9.3M
e10d3b.mp3 2015-09-23 09:10 7.0M
e10d5a.mp3 2015-09-23 09:11 54M
...
的内容中,提取出:
e10d3a.mp3
e10d3b.mp3
e10d5a.mp3
如图:
一是:用:^^
另外,里面没有详细的解释说,replacement中用$N去引用匹配的第N个group
但是通过:let re = Regex::new(r"(?P\d{4})-(?P\d{2})-(?P\d{2})").unwrap();
let before = "2012-03-14, 2013-01-01 and 2014-07-05";
let after = re.replace_all(before, "$m/$d/$y");
assert_eq!(after, "03/14/2012, 01/01/2013 and 07/05/2014");
且对于named group来说,查找时正则中named group的写法,和Python类似也是:
去试试^[^\r\n]+href="(?P\w+\.mp3)"[^\r\n]+$
结果直接红色提醒,不支持这个语法-》没法使用namded group
中有说:(exp) numbered capture group (indexed by opening parenthesis)
(?Pexp) named (also numbered) capture group (allowed chars: [_0-9a-zA-Z])
但是支持:(?:exp) non-capturing group
^[^\r\n]+href="(?:\w+\.mp3)"[^\r\n]+$
用:^[^\r\n]+href="(\w+\.mp3)"[^\r\n]+$
进一步的,其实此处是为了得到批量的mp3的下载地址,供后续迅雷去批量下载的
正则:^[^\r\n]+href="(\w+\.mp3)"[^\r\n]+$
http://media.talkbank.org/CHILDES/Biling/Singapore/$1
虽然其语法介绍中说是支持named capture group=命名的捕获的组=可以给组命名
但是实际上不支持,只能用numbered capture group=数组捕获的组