Member 12745689 Ответов: 3

Получить строку между двумя известными (или неизвестными) строками


Мне нужна функция, чтобы получить строку между ними
"<Color...>(string I need)</Color>"

точки(...) не важны.
как получить строки с регулярным выражением в C#.У меня есть такие же струны, как эти:

Что я уже пробовал:

<Color>Black</Color>
<Color name=hair>Brown</Color>
<Color name=eye>blue</Color>

3 Ответов

Рейтинг:
23

OriginalGriff

Попробуй:

(?<=\<.*?\>)(.*?)(?=\<.*?\>)


Рейтинг:
16

Patrice T

В дополнение к решению 1.

Всего лишь несколько интересных ссылок, которые помогут построить и отладить регулярное выражение.
Вот ссылка на документацию по регулярным выражениям:
perlre - perldoc.perl.org[^]
Вот ссылки на инструменты, помогающие создавать регулярные выражения и отлаживать их:
.Объем тестер регулярное выражение - регулярное выражение шторм[^]
Регулярное Средство Выражения Эспрессо [^]
RegExr: Learn, Build, & Test RegEx[^]
Онлайн-тестер регулярных выражений и отладчик: PHP, PCRE, Python, Golang и JavaScript[^]
Этот пример показывает вам регулярное выражение в виде красивого графика, который действительно полезен для понимания того, что делает регулярное выражение: Debuggex: онлайн-тестер визуальных регулярных выражений. JavaScript, Python и PCRE.[^]
Этот сайт также показывает регулярное выражение в красивом графике, но не может проверить, что соответствует регулярному выражению: Regexper[^]


Member 12745689

Инструмент регулярного выражения Expresso очень хорош.

Patrice T

Да, я знаю, это в ответе :)

Рейтинг:
0

CPallini

Так как ваши входные данные выглядят частью обычного XML строка, вы также можете рассмотреть возможность работы с C# классы для XML разбор, см., например: Введение в XML с помощью C# - полный учебник по C# [^].


Richard Deeming

Во втором и третьем примерах нет кавычек вокруг значений атрибутов, поэтому это недопустимый XML. :)