C# 拆分单词后修剪所有前导和尾随命名空间

C# 拆分单词后修剪所有前导和尾随命名空间,c#,string,C#,String,我在C中有一个场景: 输入为-> Sachin.Dutta : trimbegging space :: delete spaceafter 预期产出-> Sachin.Dutta:trimbegging space::delete spaceafter 首先,我需要根据:或::拆分字符串: 然后从每个单词的开头和结尾删去空格 然后组合单词以获得预期的输出 我可以使用for循环编写代码来分离单词并再次重新组合它们。但是,有没有更好的方法使用LINQ或正则表达式来实现这一点呢?使用带有模

我在C中有一个场景: 输入为->

Sachin.Dutta :  trimbegging space :: delete spaceafter 
预期产出->

Sachin.Dutta:trimbegging space::delete spaceafter 
首先,我需要根据:或::拆分字符串: 然后从每个单词的开头和结尾删去空格 然后组合单词以获得预期的输出


我可以使用for循环编写代码来分离单词并再次重新组合它们。但是,有没有更好的方法使用LINQ或正则表达式来实现这一点呢?

使用带有模式的正则表达式
@“\s*:\s*”

输出

Sachin.Dutta:trimbegging space::delete spaceafter

解释

  • \s*
    匹配任何空白字符(等于[\r\n\t\f\v])
    • *
      量词-在零次和无限次之间匹配,尽可能多地匹配,根据需要返回(贪婪)
  • 匹配字符:字面上(区分大小写)
  • \s*
    匹配任何空白字符(等于[\r\n\t\f\v])
    • *
      量词-在零次和无限次之间匹配,尽可能多地匹配,根据需要返回(贪婪)

使用带有模式的正则表达式
@“\s*:\s*”

输出

Sachin.Dutta:trimbegging space::delete spaceafter

解释

  • \s*
    匹配任何空白字符(等于[\r\n\t\f\v])
    • *
      量词-在零次和无限次之间匹配,尽可能多地匹配,根据需要返回(贪婪)
  • 匹配字符:字面上(区分大小写)
  • \s*
    匹配任何空白字符(等于[\r\n\t\f\v])
    • *
      量词-在零次和无限次之间匹配,尽可能多地匹配,根据需要返回(贪婪)

欢迎来到stackoveflow!这里我们讨论代码(主要是不工作的代码)。如果您的代码实际按照预期工作,您需要做的只是对其进行一点增强,这是有道理的。没有证据表明您自己尝试过任何东西。您的预期输出包含
空格
空格after
?@er sho空格和空格after是单词,它们并不意味着“欢迎使用stackoveflow!”!这里我们讨论代码(主要是不工作的代码)。如果您的代码实际按预期工作,您需要做的只是对其进行一点增强—这是有道理的。没有证据表明您自己尝试过任何东西。您的预期输出包含
空格
空格after
?@er sho空格和空格after都是单词,它们并不意味着“”