Страницы

Поиск по вопросам

четверг, 2 января 2020 г.

Как сократить регулярное выражение

#c_sharp #регулярные_выражения


Представим очень большую регулярку, которая в одной строке забирает все между тегами,
например:

'>значение<'


Для этого напишем что-то вроде:

>([^<]+)


Подобных одинаковых абсолютно кусков выражения может быть много.

Можно ли заключить их в группу типа:

(?'value'[^<]+)


и использовать в другом куске этого же выражения по типу >(value)?
    


Ответы

Ответ 1



Так как в в .NET нет \g и рекурсии, как в PCRE, невозможно внутри регулярного выражения использовать ссылку на часть регулярного выражения. Для этого проще использовать string.Format(): var something = "[^<]*"; var regex = new Regex(string.Format(">{0}<.*?>{0}<", something));

Комментариев нет:

Отправить комментарий