如何在匹配的组中从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/
答案 0 :(得分:0)
我最终用$ {n}做了一个粗略的字符串替换替换\ n。
Regex.Replace(enumSubstitution, @"\\(?<digit>\d)", @"${${digit}}");