Подстановка регулярного выражения для записи ENUM - PullRequest
0 голосов
/ 10 октября 2009

Как перенести в сопоставленные группы одно регулярное выражение в другое регулярное выражение в C #?

Мне нужно обработать DNS-запись ENUM, где первая половина записи является регулярным выражением для применения к значению поиска, а вторая половина - регулярное выражение, использующее совпадения из первой.

Пример записи ENUM для поиска по + 18001234567

!^\+1800(.*)$!sip:1641641800\1@tollfree.sip-happens.com!

Отдельные регулярные выражения разделяются символом! символ и являются:

^\+1800(.*)$
sip:1641641800\1@tollfree.sip-happens.com

Правильный результат применения двух выражений:

глотка: 16416418001234567@tollfree.sip-happens.com

Я могу сделать это, перебирая совпадения и используя поиск и замену грубой строки, но я надеюсь, что есть лучший способ. Я вполне уверен, что в Perl и других языках я мог бы сделать что-то вроде:

"+18001234567" =~ s/^\+1800(.*)$/sip:1641641800\1@tollfree.sip-happens.com/

1 Ответ

0 голосов
/ 17 ноября 2009

Я закончил делать грубую замену строк, заменив \ n на $ {n}.

Regex.Replace(enumSubstitution, @"\\(?<digit>\d)", @"${${digit}}");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...