【问题标题】:C# Regex - words, spaces, numbers and special characters in any orderC# Regex - 任意顺序的单词、空格、数字和特殊字符
【发布时间】:2016-11-29 22:15:50
【问题描述】:

这是我尝试使用正则表达式提取哪些信息的示例

class="result-title hdrlnk">CHAVY IMPALA</a><span class="result-meta"><span class="result-price">$1300</span>


class="result-title hdrlnk">1950 Buick Super straight 8 with 3 on the tree</a><span class="result-meta"><span class="result-price">$9850</span>


class="result-title hdrlnk">Buick Lesabre Hardtop Coupe</a><span class="result-meta"><span class="result-price">$8800</span>

我能够成功获取价格,但在获取车辆列表名称时遇到问题。这是正则表达式的示例

此代码非常适合获取价格和附加括号

Regex vg = new Regex(@"</a><span class=""result\-meta""><span class=""result-price"">\$\d+");

我尝试在开头使用句点,但它只会显示列表标题的最后一个字母或数字,不会显示整个列表标题。

Regex vg = new Regex(@".</a><span class=""result\-meta""><span class=""result-price"">\$\d+");

我也试过

Regex vg = new Regex(@">.*</a><span class=""result\-meta""><span class=""result-price"">\$\d+");

Regex vg = new Regex(@">\d+</a><span class=""result\-meta""><span class=""result-price"">\$\d+");

但列表标题没有运气:(任何帮助将不胜感激。

【问题讨论】:

  • 我们从不推荐使用 REGEX 解析 html 和 xml 的一个原因,
  • 深吸一口气,看看this answer

标签: c# regex numbers spaces scrape


【解决方案1】:

试试这个正则表达式class=\"result-title hdrlnk\"&gt;(.*?)&lt;\/a&gt;&lt;span class=\"result-meta\"&gt;&lt;span class=\"result-price\"&gt;(.*?)&lt;\/span&gt;,最好同时列出一个。

string input = "your input"
string pattern = @"class=\""result-title hdrlnk\"">(.*?)<\/a><span class=\""result-meta\""><span class=\""result-price\"">(.*?)<\/span>");
Match match = Regex.Matches(input, pattern);
string title = match.Groups[1].Value;
string price = match.Groups[2].Value

【讨论】:

  • @Fabio Alfara 请接受并从恶魔声望号中解救我
  • 我该怎么做呢?对不起,我是新来的,我想给你点赞:)
  • 您可以点击✔接受,点击向上箭头进行投票。
猜你喜欢
  • 2018-12-17
  • 1970-01-01
  • 2022-10-13
  • 2023-01-17
  • 2018-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多