搜索所有字符串以c#regex开头并以c#regex结尾

时间:2015-11-09 17:44:30

标签: c# regex pattern-matching

我正在尝试查找以"<!--Buy_"开头并以"_thumbnail-->"结尾的所有字符串  在c#regex中

Regex Regex = new Regex("^<!--Buy_(.*)_thumbnail-->$");
Console.WriteLine(Regex.Matches("<!--Buy_blabla_thumbnail-->").Count);

代码打印零... 我的正则表达式pattren有什么问题以及如何修复它?

2 个答案:

答案 0 :(得分:4)

首先,你永远不应该打电话给regex regex,这本身可能会破坏你的申请

Regex reg = new Regex("(<!--Buy_)(.*?)(_thumbnail-->)");

根据您要查找位于开头和结尾之间的特定字符串的新信息,我会使用此正则表达式 -

Regex reg = new Regex("(?<=<!--Buy_)(.*?)(?=_thumbnail-->)");

这将为您提供“buy_”和“_thumbnail”之间的所有内容

答案 1 :(得分:1)

当您可以使用string.StartsWithstring.EndsWith

时,我认为没有理由使用正则表达式
bool isMatch = yourString.StartsWith("<!--Buy_") 
            && yourString.EndsWith("_thumbnail-->");

string between = isMatch ? yourString.Substring(8, yourString.Length - 21) : null;