正则表达式插入和替换字符串C#中的字符

时间:2017-03-29 19:11:28

标签: c# .net regex

我有一个看起来像这样的字符串: - " $ ConfigSettings.DatabaseSettings.DatabaseConnections.SqlConnectionString.0.Id" 我希望结果看起来像这样: - " $ ConfigSettings.DatabaseSettings.DatabaseConnections.SqlConnectionString [0] .ID"

基本上只要有一个数字前面和后面的一个数字,我需要将其更改为[digit],然后是句点,即[数字]。我看过很多例子,人们只是在替换正则表达式字符串 我将如何使用C#

中的Regex.Replace执行此操作

1 个答案:

答案 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