C# 正则表达式构建
本文关键字:构建 正则表达式 | 更新日期: 2023-09-27 18:33:06
我的C#
Web 应用程序中有一个编码字符串:
<a href="/product.aspx?zpid=564">American Arborvitae </a>-10 - 10<br /><a href="/product.aspx?zpid=647">Black Walnut </a>-1 - 1<br /> <br />
解码为:
"<a href='"/product.aspx?zpid=564'">American Arborvitae</a>-10 - 10<br /><a href='"/product.aspx?zpid=647'">Black Walnut </a>-1 - 1<br /> <br />"
有没有一种相对简单的方法可以使用regex
来获取</a>-10 - 10<br />
和</a>-1 - 1<br />
之间的值?我并不是最擅长构建正则表达式的人,我不确定如何为这样的事情定义模式。 或者可以将值更容易放入字符串数组中?条目数可以在 1-30 之间变化。
每个请求--------用例
产品页面是大量树木的页面。用户可以输入他们想要的金额的任何数字(上限为 1000)。根据季节和一年中的时间,可以有 1-30 棵不同的树。
var regex = new Regex("</a>(.*?)<br />");
var matches = regex.Matches("<a href='"/product.aspx?zpid=564'">American Arborvitae</a>-10 - 10<br /><a href='"/product.aspx?zpid=647'">Black Walnut </a>-1 - 1<br /> <br />");
foreach (Match match in matches)
Console.WriteLine(match.Groups[1].Value);
Console.ReadLine();
-10 - 10-1 - 1
以下正则表达式将在</a>-0 - 0<br />
到</a>-99 - 99<br />
匹配,因此它应该处理您期望的项目数:
var rx = new Regex(@"</a>-'d{1,2}'s-'s'd{1,2}<br's*/>");
您可以使用它来获取如下所示的字符串数组:
var parts = rx.Split("<a href='"/product.aspx?zpid=564'">American Arborvitae</a>-10 - 10<br /><a href='"/product.aspx?zpid=647'">Black Walnut </a>-1 - 1<br /> <br />");
结果将是:
American Arborvitae 黑胡桃木
剩下的就看你了。希望这有帮助!