ENUM 记录的正则表达式替换
如何在 C# 中将匹配组中的 1 个正则表达式替换为另一个正则表达式?
我需要处理 ENUM DNS 记录,其中记录的前半部分是应用于查找值的正则表达式,后半部分是使用第一个记录的正则表达式。
用于在 +18001234567 上查找的 ENUM 记录示例
!^\+1800(.*)$!sip:1641641800\[email protected]!
单独的正则表达式由 ! 分隔 sip
^\+1800(.*)$
sip:1641641800\[email protected]
应用这两个表达式的正确结果是:
我可以通过迭代匹配并使用粗略的字符串搜索和替换来做到这一点,但我希望有更好的方法。我很确定在 Perl 和其他语言中我可以做类似的事情:
"+18001234567" =~ s/^\+1800(.*)$/sip:1641641800\[email protected]/
How do I susbtitute in matched groups from 1 regular expression into another regular expression in C#?
I need to process an ENUM DNS record where the first half of the record is a regular expression to apply to the lookup value and the second half is a regular expression that uses the matches from the first.
Example of an ENUM record for a lookup on +18001234567
!^\+1800(.*)$!sip:1641641800\[email protected]!
The separate regular expressions are delimited by the ! character and are:
^\+1800(.*)$
sip:1641641800\[email protected]
The correct result of applying the two expressions is:
I can do it be iterating through the matches and using a crude string search and replace but I'm hoping there is a better way. I'm pretty sure in Perl and other languages I could do somehting like:
"+18001234567" =~ s/^\+1800(.*)$/sip:1641641800\[email protected]/
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我最终做了一个粗略的字符串替换,将 \n 替换为 ${n} 。
I ended up doing a crude string substitution replace \n with ${n}.