C#正则 去除中文字符间的多个空格,将英文字符间的多个空格合并为一个空格

如题所述

string oriStr = "正     则表   达式去空   格 regex     replace      space";
string newStr = Regex.Replace(Regex.Replace(oriStr, "(?<=[\u4e00-\u9fa5])\\s+(?=[\u4e00-\u9fa5])", string.Empty), "(?<=[a-z])\\s+(?=[a-z])", " ");

最后结果为 正则表达式去空格 regex replace space

追问

我能看出意思是空格前后是中文的去掉空格,但是?<=这是什么意思啊?

追答

正则表达式的一种用法 叫做 肯定逆序环视 也有叫做 零宽度正回顾后发断言
你可以自行百度一下

温馨提示:答案为网友推荐,仅供参考
相似回答