Regex xml日期表达式

本文关键字:表达式 日期 xml Regex | 更新日期: 2023-09-27 18:08:42

我有一个反序列化的xml,看起来像这样:

http://wklej.org/id/2869540/

如何编写一个正则表达式来查找并只返回第一个日期表达式23.12.2010,这可能是另一个xml文档。

我从来没有使用过regex,我甚至不知道如何为它写一个模式。请帮助。

Regex xml日期表达式

不要使用Regex进行HTML/XML解析。使用Html/Xml解析器。以下是你不应该使用它的原因。

RegEx匹配开放标签,除了XHTML自包含标签

你能提供一些例子来说明为什么很难用正则表达式解析XML和HTML吗?

您可以在XDocument或XmlDocument中加载字符串,并使用linq获取您需要的任何内容。

这里有一个小的例子如何做到这一点:

string str =
@"<?xml version=""1.0""?>
<!-- comment at the root level -->
<Root>
    <Child>Content</Child>
</Root>";
XDocument doc = XDocument.Parse(str);

之后,使用linq选择所需的节点并获取值。这个问题可以帮到你:

在XDocument中查找元素?

按照其他人的建议,使用Html/Xml解析器。如果你真的想使用正则表达式,你可以试试:

 string xml= "yourXMLString";
 string pattern = @"'d{1,2}'.'d{1,2}'.'d{4}"; //also matches dates like 1.3.2016. Use 'd{2} to only match 01.03.2016
 Regex regEx = new Regex(pattern);
 Match m = regEx.Match(xml);   // m is the first match
 if (m.Success)
 {
    Console.WriteLine(m.Value); //prints the first found date
 }