Xpath - 从长字符串中提取电子邮件地址,但排除其余的刺痛



我使用 xpath。 我想使用 xpath 仅匹配电子邮件(而不是整个字符串(。

所以说字符串是:

<p> You can email me at andy.pandy@gmail.com </p>

这里的大多数答案都引用了一些关于//p[contains(., '@')]

但是,这将返回<p>标记中的整个文本。 我只想返回andy.pandy@gmail.com排除其余部分。

使用 xpath 可以做到这一点吗?

假设您的 XML 如下所示:

<?xml version='1.0' encoding='UTF-8'?>
<data>
<p>notanemail</p>
<p>email@example.com</p>
<p>nothing</p>
</data>

您可以致电:

XElement xmlData = XElement.Load("mails.xml");
var emailList = xmlData.XPathSelectElements(@"//p[contains(., '@')]")
.Select(p => p.Value)
.ToList();

最新更新