如何从http://www.example.com/images/business/113.jpg获得数字

本文关键字:business jpg 数字 images example http www com | 更新日期: 2023-09-27 17:50:37

使用正则表达式,我需要得到最后一个"/"answers"。jpg"之间的数字(这实际上可能是。png,。gif等):

http://www.example.com/images/business/113.jpg

任何想法?

谢谢

如何从http://www.example.com/images/business/113.jpg获得数字

使用split:

var fileName = myUrl.Split('/')[myUrl.Split('/').Length - 1];
var justTheFileName = fileName.Split('.')[0];

正则表达式在这里是绝对不必要的。

只做:

using System.IO;
var fileName = Path.GetFileNameWithoutExtension("http://www.example.com/images/business/113.jpg");

查看GetFileNameWithoutExtension方法的文档:

返回指定路径字符串的文件名,不带扩展名。

编辑:


如果您仍然希望使用正则表达式来实现此目的,则可以使用以下命令:

//Both regexes will work here
var pattern = @"/([^/]*)'.jpg"
var pattern2 = @".*/(.*)'.jpg"
var matches = Regex.Matches(pattern, "http://www.example.com/images/business/113.jpg");
if (matches.Count > 0)
    Console.WriteLine(matches[0].Groups[1].Count);

注意:
我没有编译正则表达式。这是一个小小的& &;快速的例子。

我看到您找到的解决方案匹配您的URL中的单个数字3次,但不是整个数字。您可能想要使用一些更"可读"的内容,例如:

(?<='/)'d+(?='.'w+$)

如果你想要获取这个数字并使用它,把它放到一个组中:

(?<='/)('d+)(?='.'w+$)

明白了!!(?=['s'S]*?''.)(?!['s'S]+?/)[0-9]

PS:正则表达式工作台由microsoft KICKS ASS

您可以使用以下正则表达式:

/(?<number>'d+)'.jpg$

它将捕获到命名组'number'中的号码。正则表达式的工作方式如下:

  1. 查找/
  2. 捕获1个或多个数字(0-9)到命名组'number'
  3. 检查.jpg
  4. $匹配字符串末尾。

匹配结尾使事情容易得多。我不认为向前看或向后看是必要的。