C# 如何使用正则表达式在字符之间插入空格?

C# 如何使用正则表达式在字符之间插入空格?,c#,regex,C#,Regex,尝试学习更多关于使用正则表达式的知识。在C#(VS 2010)中使用微软版本的正则表达式,我如何能得到一个简单的字符串,如: "Hello" 并将其更改为 "H e l l o" 这可以是由任何字母或符号、大写字母、小写字母等组成的字符串,并且该单词后面或前面没有其他字母或符号。(字符串仅由一个单词组成) (我读过其他帖子,但我似乎不懂正则表达式。请友善:) 谢谢你在这方面的帮助。(一个解释将是最有用的)。您可以只通过正则表达式来实现这一点,而不需要内置c#函数。 使用下面的正则表达式,然后

尝试学习更多关于使用正则表达式的知识。在C#(VS 2010)中使用微软版本的正则表达式,我如何能得到一个简单的字符串,如:

"Hello"
并将其更改为

"H e l l o"
这可以是由任何字母或符号、大写字母、小写字母等组成的字符串,并且该单词后面或前面没有其他字母或符号。(字符串仅由一个单词组成)

(我读过其他帖子,但我似乎不懂正则表达式。请友善:)


谢谢你在这方面的帮助。(一个解释将是最有用的)。

您可以只通过正则表达式来实现这一点,而不需要内置c#函数。 使用下面的正则表达式,然后用空格替换匹配的边界

(?<=.)(?!$)


string result=Regex.Replace(你的字符串,@)(?非常简单。要匹配任何字符,请使用
点,然后用该字符和一个额外的空格替换

此处括号
(…)
用于分组,可通过
$index

查找内容:
“()”

替换为
“$1”

解释

  • 点字符类匹配字符串“Hello”的每个字符
  • 需要围绕点字符的符号,以便我们可以通过
    $n
    符号引用捕获的字符
  • 每个捕获的字符都被替换字符串替换。我们的替换字符串是“$1”(注意末尾的空格)。此处,
    $1
    表示输入中第一个捕获的组,因此我们的替换字符串将用该字符加上一个空格替换每个字符
  • 这种技术还将在最后一个字符“o”后添加一个空格,因此我们调用TrimEnd()来删除该空格

对于发烧友来说,使用LINQ可以实现同样的效果:

String.Join(" ", YourString.AsEnumerable())
或者,如果您不想使用扩展方法:

String.Join(" ", YourString.ToCharArray())

你能解释一下语法吗?谢谢。@Raj谢谢。所有的答案都很好,但我想找一个纯正则表达式。你知道为什么对一个学习问题投反对票吗:(?我不知道你的问题出了什么问题,但你必须展示你的尝试。我的尝试导致了胡言乱语——不值得占用内存空间。谢谢!那么这在最后的语句中看起来如何?谢谢。有很多修饰符与正则表达式模式一起使用,例如
m
用于多行,而
i
用于不区分大小写和
g
用于全局(全部匹配)和其他语言特定的。
string result = Regex.Replace(yourString, @"(?<!^)(\B|b)(?!$)", " ");
Regex.Replace("Hello", "(.)", "$1 ").TrimEnd();
String.Join(" ", YourString.AsEnumerable())
String.Join(" ", YourString.ToCharArray())