解析来自html源的短字符串
本文关键字:字符串 html | 更新日期: 2023-09-27 18:05:50
<br />
Your coupon for 50% off MSRP - Inline is: XXXXXXXXXXX<br />
Your coupon for 50% off MSRP - Outdoor is: XXXXXXXXXXX<br /><br />
我想解析优惠券代码。我现在有is(.+?)<br>
,但它也包括最后的<br>
。
试试这样的后视/前视模式:
".*?coupon.*?(?<=: )(''w+)(?=<br />|<br/>)"
将包含单词"coupon"
且位于": "
和"<br />"
或<br/>"
之间的字母数字数据匹配到捕获组1
using System;
using System.Text.RegularExpressions;
public class Program
{
public static void Main()
{
string html = "<br />'n" +
"Your coupon for 50% off MSRP - Inline is: XXXXXXXXXXX<br />" +
"Your coupon for 50% off MSRP - Outdoor is: XXXXXXXXXXX<br /><br />";
MatchCollection matches = Regex.Matches(html, ".*?coupon.*?(?<=: )(''w+)(?=<br />|<br/>)");
foreach (Match match in matches)
{
Console.WriteLine(match.Groups[1]);
}
}
}
结果:
XXXXXXXXXXX
XXXXXXXXXXX
小提琴演示
您应该能够做到这一点,甚至不使用Regex。就像
string s = "Your coupon for 50% off MSRP - Outdoor is: XXXXXXXXXXX";
Console.WriteLine(s.Substring(s.LastIndexOf(' ') + 1));
应该工作,只要优惠券代码始终是字符串的最后一部分,加上空格。
编辑:在看到您的编辑并且字符串被<br>
包装后的另一种选择,您总是可以用空字符串替换匹配结果-
string s = "Your coupon for 50% off MSRP - Outdoor is: XXXXXXXXXXX<br>";
Console.WriteLine(s.Substring(s.LastIndexOf(' ') + 1).Replace("<br>",""));