gpt4 book ai didi

c# - 之间的正则表达式,从最后到特定结束

转载 作者:太空宇宙 更新时间:2023-11-03 11:28:09 25 4
gpt4 key购买 nike

今天我的愿望是从字符串中获取文本。此字符串必须位于最后一个斜杠.partX.rar.rar

之间

首先,我试图找到边的单词结尾,然后是开头。得到这两个元素后,我将它们合并,但得到的结果是空的。

字符串:

http://hosting.xyz/1234/15-game.part4.rar.html

http://hosting.xyz/1234/16-game.rar.html

正则表达式:

开始:(([^/]*)$) - 从最后一个/开始

结束:(.*(?=.part[0-9]+.rar|.rar)).partX.rar之前停止.rar

如您所见,如果我合并这些代码,我不会得到任何结果。而且,“结束”只选择我.partX 而不是.partX.rar

我想要的是:15-game.part4.rar16-game.rar


我尝试了什么:

(([^/]*)$)(.*(?=.part[0-9]+.rar|.rar))

(([^/]*)$)

(.*(?=.part[0-9]+.rar|.rar))

我也试过

/[a-zA-Z0-9]+

但我不知道如何选择符号..这可能是最简单的方法。但这只选择字母和数字,而不是 -_。如果我可以选择符号..

最佳答案

你真的不需要正则表达式,因为你可以只在 / 上拆分 url,然后获取你需要的文件名部分。由于您没有提到语言,这里是 Perl 中的实现:

use strict;
use warnings;

my $str1="http://hosting.xyz/1234/15-game.part4.rar.html";

my $str2="http://hosting.xyz/1234/16-game.rar.html";

my $file1=(split(/\//,$str1))[-1]; #last element of the resulting array from splitting on slash

my $file2=(split(/\//,$str2))[-1];

foreach($file1,$file2)
{
s/\.html$//; #for each file name, if it ends in ".html", get rid of that ending.
print "$_\n";
}

输出是:

15-game.part4.rar
16-game.rar

关于c# - 之间的正则表达式,从最后到特定结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8732655/

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