如何删除返回字符串中有问题的空格?我在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定义帮助我学习如何处理这个问题吗?
非常感谢。
您可以调整正则表达式模式,以便在可选的空白字符之前匹配尽可能少的非数字符号:
^(\d{6} )(- )(\D*?)\s*(\d{4})
^^^^^^
细节
^
- 字符串的开头(\d{6} )
- 第1组:六位数(- )
- 第2组:连字符和空格(\D*?)
- 第3组:除数字之外的任何0+字符,但尽可能少,因为*?
量词是懒惰的(量化模式仅在后续模式无法匹配时尝试和扩展)\s*
- 0+空白字符(\d{4})
- 第4组:四位数。