ENUM记录的正则表达式替换

时间:2009-10-10 12:08:49

标签: c# regex enums

如何在匹配的组中从1个正则表达式转换为C#中的另一个正则表达式?

我需要处理ENUM DNS记录,其中记录的前半部分是应用于查找值的正则表达式,后半部分是使用第一部分匹配的正则表达式。

在+18001234567上查找的ENUM记录示例

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

单独的正则表达式由!分隔!性格和是:

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

应用这两个表达式的正确结果是:

SIP:16416418001234567@tollfree.sip-happens.com

我可以通过迭代迭代并使用原始字符串搜索和替换,但我希望有更好的方法。我非常肯定在Perl和其他语言中我可以做的事情如下:

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

1 个答案:

答案 0 :(得分:0)

我最终用$ {n}做了一个粗略的字符串替换替换\ n。

Regex.Replace(enumSubstitution, @"\\(?<digit>\d)", @"${${digit}}");