如何删除返回字符串中有问题的空格? 我在Excel中使用单元格函数,我有一个字符串,我在其中找到特定文本并将其移动到同一字符串中的另一个位置。
我的结果很好,除了它们包含一个额外的空格,我无法弄清楚如何删除。我相信这对你来说很简单,但我是正则表达和学习的新手。
示例文本字符串:
999999 - Blah Blah Blah 8888 blah blah
期望的结果是:
999999 (8888) - Blah Blah Blah blah blah
我的实际结果是(注意第3个Blah的额外空格)
999999 (8888) - Blah Blah Blah blah blah
这是我目前的相关代码:
strPattern = "^(\d{6} )(\- )(\D+)(\d{4})"
strReplace = "$1($4) $2$3"
有人可以通过我的strPattern定义和/或strReplace定义帮助我学习如何处理这个问题吗?
非常感谢。
答案 0 :(得分:1)
您可以调整正则表达式模式,以便在可选的空白字符之前匹配尽可能少的非数字符号:
^(\d{6} )(- )(\D*?)\s*(\d{4})
^^^^^^
请参阅regex demo
<强>详情
^
- 字符串的开头(\d{6} )
- 第1组:六位数(- )
- 第2组:连字符和空格(\D*?)
- 第3组:除了数字之外的任何0 +字符,但尽可能少,因为*?
量词是懒惰的(量化的模式仅在后续模式失败时才尝试和扩展匹配)\s*
- 0+空白字符(\d{4})
- 第4组:四位数。