2017-05-08 235 views
-3

在C#中,我怎么能提取此字符串的信息:提取数据

http://www.example.com/images/this-is-the-url-1234-12-filename.jpg 

用正则表达式,这样我就可以得到以下数据:

/1234/12/filename.jpg 

以上只是URL模式的一个例子。下面是一些例子:

http://www.example1.com/images/this-is-something-else-5555-10-anotherfilename.jpg 

应返回:

/5555/10/anotherfilename.jpg 

任何帮助是极大的赞赏。谢谢。

+0

直接发布你的图片 – Aditya

+2

@ADITYA我认为链接的目的不是图像,它们只是输入数据的例子 –

回答

1

根据所提供的两个示例的URL,可以提取与此图案所需的信息:

string pattern = @"-(\d+\-\d+\-[a-zA-Z]+\.[a-zA-Z]+)"; 

使用以下代码将分裂的网址为2个部分,其中所希望的字符串是在第二子字符串:

string input = "http://www.example.com/images/this-is-the-url-1234-12-filename.jpg"; 
string pattern = @"-(\d+\-\d+\-[a-zA-Z]+\.[a-zA-Z]+)";   

string[] substrings = Regex.Split(input, pattern); 

所以substrings[1]1234-12-filename.jpg。那么你只需要用“/”替换“/”,比如这个例子:

var newString = "/" + substrings[1].Replace("-", "/") 

你应该得到想要的结果。

注:这只会工作,如果你想改变所有的URL到底有以下模式:

-number用户号码filename.extension

而且这模式不会在URL的其他地方发生。