如何从HTML字符串中提取引号中的值?

时间:2018-07-02 14:38:09

标签: javascript c# html web-scraping html-agility-pack

我有以下代码段,可从网页中检索到:

<li class="player" data-id="168568" data-teamid="156" data-x="142.33" data-y="297.16040000000004" data-name="Corentin Tolisso" data-position="3">Corentin Tolisso<span class="shirt">24</span></li>

我的目标是提取“ Corentin Tolisso”,衬衫编号“ 24”以及data-x和data-y的值。

到目前为止,我已经能够使用HTML Agility Pack将其与>...<内的值一起使用。

但是我找不到提取数据x和数据y的方法。

我已经将HTML字符串复制到了一个新的jsfiddle中,该jsfiddle确切地显示了我的C#代码所得到的东西,>...<之间的东西。

如何提取data-x和data-y的值?

注意:使用String.IndexOf可以很好地工作,但是却失去了灵活性。这是我的后备策略。

注2:我看着herehere,两者都给了我一些想法,但是我很难将其应用于C#。

1 个答案:

答案 0 :(得分:1)

1种方式将使用(["'])(?:(?=(\\?))\2.)*?\1 它也支持嵌套引号

尝试访问此链接: https://regex101.com/r/cB0kB8/1

借助JQuery,它变得非常简单。

也请查看以下示例:Getting value of HTML text input

<form name="input" action="handle_email.php" method="post">
Email: <input type="text" name="email" />
<input type="submit" value="Newsletter" />
</form> 
<a id="regLink" href="http://mywebsite.com/register?user_email=">Register</a>

$('input[name="email"]').change(function(){
alert($('#regLink').attr('href')+$('input[name="email"]').val());
});

希望对您有帮助!