[英]Replace all occurrences of a white space from string except the first occurrence using Regex in C#
输入字符串具有多个空格,结果应只剩下一个空格,其他空格必须替换为string.Empty
输入字符串: +1 580 5691 234
或(435) 772-5992
输出字符串: +1 5805691234
或+1 4357725992
Regex.Replace(text, @"[^\\d]", string.Empty)
替换所有空白。
您不必在一行内完成所有操作:
根据需要删除特殊字符,获取第一个空格的位置,仅在第一个空格之后的子字符串中使用正则表达式删除空格。
如果您绝对必须使用单个正则表达式执行此操作,则这可能是您的解决方案:
更换
^(?:\+1)?\D*(\d*)?\D*(\d*)?\D*(\d*)?\D*(\d*)?\D*(\d*)?$
与
+1 $1$2$3$4$5
使用5个单独的捕获组,它仅捕获数字,可能用非数字分隔。 如果少于5位数字组,则将其忽略。
请注意, 也不会捕获可选的先前国家(地区)代码,并且替换字符串始终会插入该代码(如果存在则返回)。
此特定示例将数字组的数量限制为5,但是可以轻松扩展。
.NET Regex引擎可以通过以下方式进行管理:
(?<=\s+.*)\s+
它与所有空白块匹配,所有空白块之前至少有一个空白块,然后是一些非空白字符。
将其用作字符串+1 580 5691 234
上的Regex.Replace(text, "(?<=\\s+.*)\\s+", string.Empty)
产生输出+1 5805691234
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.