C# 从字符串中删除交替空格
如何从字符串中删除空格,但仅当空格与非空格相邻时才删除 例如,我想把C# 从字符串中删除交替空格,c#,string,replace,C#,String,Replace,如何从字符串中删除空格,但仅当空格与非空格相邻时才删除 例如,我想把pumpkinpie变成南瓜饼 我当前的解决方案是String.Join(“”),input.Split(“”)不会保留空格。一种方法是匹配后跟非空格或2+空格的空格,并用空字符串替换它们: using System.Text.RegularExpressions; ... var str = "P u m p k i n p i e"; var res = Regex.Replace(str, @"\s(?=\S|\s{2
pumpkinpie
变成南瓜饼
我当前的解决方案是
String.Join(“”),input.Split(“”)在上面的示例中,code>不会保留空格。一种方法是匹配后跟非空格或2+空格的空格,并用空字符串替换它们:
using System.Text.RegularExpressions;
...
var str = "P u m p k i n p i e";
var res = Regex.Replace(str, @"\s(?=\S|\s{2,})", "");
一种方法是将空格与非空格或2+空格匹配,并用空字符串替换它们:
using System.Text.RegularExpressions;
...
var str = "P u m p k i n p i e";
var res = Regex.Replace(str, @"\s(?=\S|\s{2,})", "");
我并不为此感到骄傲,但如果你不喜欢正则表达式
string[] splitters = new string[] { " " };
string input = "P u m p k i n p i e";
string output = String.Join(" ", input.Split(splitters, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Replace(" ", String.Empty)));
我并不为此感到骄傲,但如果你不喜欢正则表达式
string[] splitters = new string[] { " " };
string input = "P u m p k i n p i e";
string output = String.Join(" ", input.Split(splitters, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Replace(" ", String.Empty)));
那么:
string text = "I l o v e P u m p k i n p i e";
// Use a special character for word delimiter. In this specific case, #
string result = Regex.Replace(text, @"\s{2,}", "#");
// Get the words
IEnumerable<string> words = result.Split('#').Select(w => String.Join(String.Empty, w.Split(' ')));
// Join the words with space character
result = String.Join(" ", words);
那么:
string text = "I l o v e P u m p k i n p i e";
// Use a special character for word delimiter. In this specific case, #
string result = Regex.Replace(text, @"\s{2,}", "#");
// Get the words
IEnumerable<string> words = result.Split('#').Select(w => String.Join(String.Empty, w.Split(' ')));
// Join the words with space character
result = String.Join(" ", words);
string input=“pum P k in P i e”;
字符串输出=Regex.Replace(输入,“(?stringinput=“pum P k in P i e”;
string output=Regex.Replace(input,“(?这是一个糟糕的问题吗?基本上是一个“为我编写代码”的问题。@在我自己尝试过之后,stackexchange支持哪种方法?),您的尝试string.Join(“,input.Split(“”))
相当于string.Replace(“,”)
,但效率可能更低(尽管仍然错误)为什么这是一个糟糕的问题?这基本上是一个“为我编写代码”的问题。@mason在我自己尝试过之后,stackexchange支持它。您尝试的String.Join(“),input.Split(“”))
相当于String.Replace(“,”)
,但效率可能更低(尽管仍然错误)Regex
类从哪里来?System.Regex
?@onlygustiSystem.Text.regular expressions
。我知道,Text
部分很奇怪。Regex
类从哪里来?System.Regex
?@onlygustiSystem.Text.regular expressions
。我知道,Text
部分很奇怪。这是什么不为此感到自豪的原因是什么?它是有效的,但人们通常使用正则表达式来处理字符串。@FrumRoll这只在正好有三个连续的空格字符时有效。@matiascero它似乎对我很有效far@MatiasCicero修复了删除连续空格>=2的问题。不为此感到自豪的原因是什么?这很有效,people通常使用正则表达式来处理字符串。@FrumRoll这只在正好有三个连续的空格字符时才有效。@MATIASCERO它似乎对我很有效far@MatiasCicero固定删除连续空格>=2。