如何从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
任何想法?
谢谢
使用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个或多个数字(0-9)到命名组'number'
- 检查.jpg
-
$
匹配字符串末尾。
匹配结尾使事情容易得多。我不认为向前看或向后看是必要的。