我正在尝试查找以"<!--Buy_"
开头并以"_thumbnail-->"
结尾的所有字符串
在c#regex中
Regex Regex = new Regex("^<!--Buy_(.*)_thumbnail-->$");
Console.WriteLine(Regex.Matches("<!--Buy_blabla_thumbnail-->").Count);
代码打印零... 我的正则表达式pattren有什么问题以及如何修复它?
答案 0 :(得分:4)
首先,你永远不应该打电话给regex regex
,这本身可能会破坏你的申请
Regex reg = new Regex("(<!--Buy_)(.*?)(_thumbnail-->)");
根据您要查找位于开头和结尾之间的特定字符串的新信息,我会使用此正则表达式 -
Regex reg = new Regex("(?<=<!--Buy_)(.*?)(?=_thumbnail-->)");
这将为您提供“buy_”和“_thumbnail”之间的所有内容
答案 1 :(得分:1)
当您可以使用string.StartsWith
和string.EndsWith
bool isMatch = yourString.StartsWith("<!--Buy_")
&& yourString.EndsWith("_thumbnail-->");
string between = isMatch ? yourString.Substring(8, yourString.Length - 21) : null;