我需要用“x_y_z word1 word2”替换“x y z word1 word2”
单个字符的数量可能会有所不同。

请您参考如下方法:

您可以通过滥用 lookahed 来实现:

Regex.Replace(str, @"(?<=^\w?(\s\w)*)\s(?=\w\s)", "_"); 

查找一系列空格和单个字母之后以及另一个此类字母之前的空格。请注意,这不适用于所有 Regex 风格,但 .net 可以很好地处理它。

另一种选择是使用 MatchEvaluator:

Regex.Replace(str, @"^(\w )+", 
              match => match.Value.TrimEnd().Replace(' ', '_') + " "); 

在此版本中,正则表达式很简单,但我们进行了一些后处​​理 - 该函数删除了最后一个空格,并将所有其他空格替换为下划线。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!