如何使用正则表达式在字符之间插入空格
本文关键字:之间 插入 空格 字符 何使用 正则表达式 | 更新日期: 2023-09-27 18:34:57
尝试了解更多关于使用正则表达式(正则表达式(的信息。在 C# (VS 2010( 中使用 Microsoft 版本的正则表达式,我怎么能采用一个简单的字符串,例如:
"Hello"
并将其更改为
"H e l l o"
这可以是任何字母或符号、大写字母、小写等的字符串,并且没有其他字母或符号跟随或引导该单词。(字符串仅包含一个单词(。
(我已经阅读了其他帖子,但我似乎无法掌握正则表达式。请善待:)(。
感谢您对此的任何帮助。(解释将是最有用的(。
您只能通过正则表达式执行此操作,不需要内置的 c# 函数。使用以下正则表达式,然后将匹配的边界替换为空格。
(?<=.)(?!$)
演示
string result = Regex.Replace(yourString, @"(?<=.)(?!$)", " ");
解释:
-
(?<=.)
正面回头断言比赛之前必须有一个角色。 -
(?!$)
负前瞻,断言匹配后不会有行锚点的末尾。因此,所有字符旁边的边界将匹配,但与最后一个字符旁边的边界不匹配。
或
您也可以使用单词边界。
(?<!^)('B|b)(?!$)
演示
string result = Regex.Replace(yourString, @"(?<!^)('B|b)(?!$)", " ");
解释:
-
(?<!^)
负面的回头看,断言比赛不会在开始时进行。 -
('B|'b)
匹配两个单词字符和两个非单词字符之间存在的边界('B
(或匹配单词字符和非单词字符之间存在的边界('b
(。 -
(?!$)
负前瞻断言匹配后不会有行锚点的末尾。
Regex.Replace("Hello", "(.)", "$1 ").TrimEnd();
解释
- 点字符类匹配字符串"Hello"的每个字符。
- 点字符周围的偏执是必需的,以便我们可以通过
$n
符号来引用捕获的字符。 - 每个捕获的字符都将替换为替换字符串。我们的替换字符串是"$1"(注意末尾的空格(。这里
$1
表示输入中第一个捕获的组,因此我们的替换字符串将用该字符加一个空格替换每个字符。 - 这种技术也会在最后一个字符"o"之后添加一个空格,所以我们调用 TrimEnd(( 来删除它。
可以在此处查看演示。
对于发烧友来说,可以使用以下单行代码通过 LINQ 实现相同的效果:
String.Join(" ", YourString.AsEnumerable())
或者,如果您不想使用扩展方法:
String.Join(" ", YourString.ToCharArray())
这很简单。要匹配任何字符.
请使用点,然后替换为该字符以及一个额外的空格
此处的括号(...)
用于可由$index
访问的分组
查找内容 : "(.)"
替换为"$1 "
演示