我有一个看起来像这样的字符串: - " $ ConfigSettings.DatabaseSettings.DatabaseConnections.SqlConnectionString.0.Id" 我希望结果看起来像这样: - " $ ConfigSettings.DatabaseSettings.DatabaseConnections.SqlConnectionString [0] .ID"
基本上只要有一个数字前面和后面的一个数字,我需要将其更改为[digit],然后是句点,即[数字]。我看过很多例子,人们只是在替换正则表达式字符串 我将如何使用C#
中的Regex.Replace执行此操作答案 0 :(得分:1)
Regex.Replace(input, @"\.(\d)(?=\.)", "[$1]")
\. - capture a "."
(\d) - then a single digit in a capturing group ($1 in the replacement)
(?= - start a positive lookahead
\. - that matches a "."
) - end the lookahead
所以,这意味着:(匹配一个点后跟一个捕获组中的数字)只有当它后跟一个点
因此,我们匹配了".0"
并抓取了"0"
。我们将整个匹配项替换为"[$1]"
,其中$1
指的是第一个捕获的组。
有关我在此解决方案中使用的不同分组结构的信息,请参阅"Grouping Constructs in Regular Expressions":https://msdn.microsoft.com/en-us/library/bs2twtah(v=vs.110).aspx。