如何添加空格以分隔带有标点符号的合并单词(如果它介于两者之间)并保留空格
how to add whitespace to separate merged words with punctuation mark if it is between and keep it with whitespace
如果我的输入字符串如下所示,我需要添加白色 space:
“你好,世界”
将其传递到文本文档中,如下所示:
"hello, world"带白色-space并保留标点符号在原处。
换句话说,如果下一个单词与前一个单词的标点符号合并,我需要在标点符号后添加一个白色-space。我需要所有的逗号、点、感叹号和破折号。
所以我不确定我是否可以使用这个:
string input = "hello,world,world,world";
string pattern = @",(\S)";
string substitution = @", ";
Regex regex = new Regex(pattern);
string result = regex.Replace(input, substitution);
但结果是它在标点符号之后剪切单词的第一个字符:
hello, orld, orld, orld
并且期望的结果应该是:
"hello, world, world, world"
使用 Regex.Replace
重载获得 MatchEvaluator
委托:
string input = "hello!world.world-world";
var result = Regex.Replace(input, @"[\,\.\-\!]", (m) => m + " ");
// hello! world. world- world
有关 MatchEvaluator
的更多信息,请参阅:How does MatchEvaluator in Regex.Replace work?
如果我的输入字符串如下所示,我需要添加白色 space:
“你好,世界”
将其传递到文本文档中,如下所示:
"hello, world"带白色-space并保留标点符号在原处。
换句话说,如果下一个单词与前一个单词的标点符号合并,我需要在标点符号后添加一个白色-space。我需要所有的逗号、点、感叹号和破折号。
所以我不确定我是否可以使用这个:
string input = "hello,world,world,world";
string pattern = @",(\S)";
string substitution = @", ";
Regex regex = new Regex(pattern);
string result = regex.Replace(input, substitution);
但结果是它在标点符号之后剪切单词的第一个字符:
hello, orld, orld, orld
并且期望的结果应该是:
"hello, world, world, world"
使用 Regex.Replace
重载获得 MatchEvaluator
委托:
string input = "hello!world.world-world";
var result = Regex.Replace(input, @"[\,\.\-\!]", (m) => m + " ");
// hello! world. world- world
有关 MatchEvaluator
的更多信息,请参阅:How does MatchEvaluator in Regex.Replace work?