-2

我需要在字符串中提取以某事物开头和结尾的模式

这是网址:

http://monsite.com/articles/%d8%a7%d8%af%d9%85%d9%8a%d9%84%d8%b3%d9%88%d9_sto3955603/description.html

在 C# 中,如何从这个 url 中提取模式%d8%a7%d8%af%d9%85%d9%8a%d9%84%d8%b3%d9%88%d9_

模式的开始字符是%,结束字符是_

4

2 回答 2

1

您可以使用String.SubStringString.IndexOf方法,例如;

string s = "http://monsite.com/articles/%d8%a7%d8%af%d9%85%d9%8a%d9%84%d8%b3%d9%88%d9_sto3955603/description.html";
Console.WriteLine(s.Substring(s.IndexOf('%'), s.IndexOf('_' ) - s.IndexOf('%') + 1));

输出将是;

%d8%a7%d8%af%d9%85%d9%8a%d9%84%d8%b3%d9%88%d9_

这里一个Demonstration.

如果你想首先检查你的字符串是否有%_没有字符,你可以使用String.Contains类似的方法;

if(s.Contains("%") && s.Contains("_") && (s.IndexOf('_') > s.IndexOf('%')))
{
  // Your string has % and _ characters and also _ comes after first %.
}
于 2013-10-09T13:54:29.450 回答
1

考虑以下片段...

string input = "http://monsite.com/articles/%d8%a7%d8%af%d9%85%d9%8a%d9%84%d8%b3%d9%88%d9_sto3955603/description.html";
var output = Regex.Match(input, @"%[\w\d%]*_");
Console.WriteLine(output.Value);

输出是...

%d8%a7%d8%af%d9%85%d9%8a%d9%84%d8%b3%d9%88%d9_

于 2013-10-09T14:04:16.630 回答