#regex
#регулярное выражение
Вопрос:
У меня есть xml в виде строки. Допустим, что имя элемента — TestDate, а дата — форма YYYY-MM-DD
. Итак, другими словами <TestDate>1950-03-31</TestDate>
.
Как мне это найти.
Допустим, у меня есть строка xml;
xml содержит элемент TestDate. Я хочу получить это с помощью регулярного выражения.
string regularExpression = @"";
Regex regex = new Regex(regularExpression , RegexOptions.Compiled);
Что должно происходить для регулярного выражения.
Комментарии:
1. Ваш синтаксис и ссылки на объекты подразумевают, что вы используете C #, но, пожалуйста, укажите, какой язык вы используете в теге или вопросе, или в обоих
Ответ №1:
Это должно соответствовать вашей дате: [0-9]{4}-[0-9]{2}-[0-9]{2}
если вы можете использовать Perl-RegEx-Syntax, вы можете использовать d
вместо [0-9]
Комментарии:
1.
d
работает практически для всех типов регулярных выражений, но, как указано в комментарии к другому ответу, выражение должно соответствовать всему тегу, а не только дате
Ответ №2:
Если вам нужны данные поиска только в этом элементе, то он должен быть
<TestDate>[0-9]{4}-[0-9]{2}-[0-9]{2}</TestData>
Другой подход заключается в использовании XPath. Загрузите XML-строку в XmlDocument и извлеките все похожие узлы. Приведенный ниже код вернет все узлы TestDate.
XmlNode[] nodes = doc.SelectNodes("//TestDate");
Комментарии:
1. Я хочу получить весь элемент, а также его содержимое.
2. Я полагаю, что ваше регулярное выражение определяет соответствие несбалансированных тегов (если используется дословно) из-за опечатки.