.net – 正则表达式替换捕获后跟数字
我正在尝试获得一个正则表达式替换工作来更新我的AssemblyInfo.cs文件,所以我有:
Regex.Replace( contents,@"([assembly: Assembly(File)?Version("").*("")])","$1" + version + "$3" ); 问题是该版本是类似“1.5.3.0”,所以当替换被评估时,它看到“$ 11.5.3.0 $ 3”,并且可能是寻找第十一个捕获的组,因为它出来了: $11.5.3.0")] 如果在$ 1之后粘贴一个空格,它可以正常工作。我需要放在哪里才能摆脱第二个数字而不插入字符?
使用$ {1}而不是$ 1。这也是名为
capturing group(?< name>)的替代语法。
这是一个说明的代码片段(see also on ideone.com): Console.WriteLine(Regex.Replace("abc","(.)","$11")); // $11$11$11 Console.WriteLine(Regex.Replace("abc","${1}1")); // a1b1c1 Console.WriteLine(Regex.Replace("abc","(?<x>.)","${x}1")); // a1b1c1 此行为明确记录:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |