vscode正则表达式替换php数组,【已解决】VSCode中如何使用正则表达式去替换且被替换中使用分组group...

想要通过VSCode去从:[SND]e10d3a.mp3 2015-09-23 09:10 9.3M

[SND]e10d3b.mp3 2015-09-23 09:10 7.0M

[SND]e10d5a.mp3 2015-09-23 09:11 54M

...

的内容中,提取出:

e10d3a.mp3

e10d3b.mp3

e10d5a.mp3

如图:

d6e90464c20bcdd6d1597fa8576450d8.png

一是:用:^\[SND\]5ff40b3731ca59abfa57f49ab50f64fd.png^\[SND\]

$1

565910162662b224d015e4bc34d1a89c.png

是可以实现要的效果的,都换成了对应的xxx.mp3了:

61b040449e40ca2f2a57c418b668b64e.png

另外,关于具体的语法的支持,从:VS Code does support regular expression searches, however, backreferences, lookaround, and multiline matches are not supported. This is because VS Code depends on the search tool ripgrep, which, while extremely fast, doesn’t support these advanced regex features.

->

->

里面有详细的介绍

另外,里面没有详细的解释说,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类似也是:

(?Pxxxx)

然后用:

$yourGroupName

去引用。

去试试^[^\r\n]+href="(?P\w+\.mp3)"[^\r\n]+$

$audioFilename

结果直接红色提醒,不支持这个语法-》没法使用namded group

a9b900fca1a187edffa352e57ad52669.png

但是看到:

中有说:(exp) numbered capture group (indexed by opening parenthesis)

(?Pexp) named (also numbered) capture group (allowed chars: [_0-9a-zA-Z])

看来VSCode中不支持?

但是支持:(?:exp) non-capturing group

f52039083124af0fbf3f61b01ab89407.png^[^\r\n]+href="(?:\w+\.mp3)"[^\r\n]+$

-》所以目前看来暂时只能使用numbered group了

用:^[^\r\n]+href="(\w+\.mp3)"[^\r\n]+$

$1

[SND] 2015-09-23 09:10 9.3M

[SND] 2015-09-23 09:10 7.0M

[SND] 2015-09-23 09:11 54M

...

ff315ca0b714d80fcdb0ca8c9c0e8341.png

再去点击:

全部替换

ecb03b3da2b2a39b32fb2edd3d534e83.png

d3c905850d2e2bff1cd1d01ff8d8e798.png

替换为:

fa1e8fa7db148547464374a710bf0bba.png

进一步的,其实此处是为了得到批量的mp3的下载地址,供后续迅雷去批量下载的

所以再去给替换后的mp3加上地址前缀:

正则:^[^\r\n]+href="(\w+\.mp3)"[^\r\n]+$

http://media.talkbank.org/CHILDES/Biling/Singapore/$1

把:[SND] 2015-09-23 09:10 9.3M

[SND] 2015-09-23 09:10 7.0M

[SND] 2015-09-23 09:11 54M

505350fce945f4c3bb135a4fd6fab837.png

替换为:

3be7d9ab0eb6e7ae543bf86dd4205b16.png

注意:

VSCode中的正则利用的是第三方的库:

虽然其语法介绍中说是支持named capture group=命名的捕获的组=可以给组命名

比如:(?Pxxx) -> $yourGroupName

但是实际上不支持,只能用numbered capture group=数组捕获的组

比如:(xxx) -> $1

然后就可以利用迅雷去批量下载mp3了:

463b9446a95cd7759c74978754c366b6.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值