#c# #regex
#c# #регулярное выражение
Вопрос:
{%if Lang="english", Site="testsite"}
content
{%endif}
Мне нужно получить язык групп, сайт и содержимое
Это то, что я использую для получения части содержимого
".*}(.*){%.*"
Комментарии:
1. Что вы пробовали, в чем ваша проблема? На данный момент вопрос заключается только в том, «Сделайте мою работу за меня»
2. «.*}(.*){%.*» даст мне содержимое в группе 1, а не 0
Ответ №1:
Вы можете захватывать группы с помощью ?<groupname>
.
Это очень грубое регулярное выражение для получения нужных групп:
{%ifs.*(Lang="(?<lang>[^"]*))".*(Site="(?<site>[^"]*))"}(?<content>[^{]*){%endif}
при использовании регулярного выражения из c # вы можете получить группы с помощью:
var _regex = new RegEx(...);
var _language = _regex.Groups["lang"].Value;
Ответ №2:
Я не уверен, насколько гибким вам нужно ваше регулярное выражение, но попробуйте что-то вроде:
{%if Lang="(.*)",s.*Site="(.*?)"}(rn)*?(.*?)(rn)*?{%endif}
Затем вы можете получить совпадения оттуда.