当前位置: 首页 > 面试题库 >

如何从Golang中的字符串中删除多余的空格/空格?

柴凌
2023-03-14
问题内容

我想知道如何删除:

  • 所有 前导/尾随 空格或换行符,空字符等。
  • 字符串中的任何多余空格(例如,“ hello [space] [space] world”将转换为“ hello [space] world”)

单个正则表达式,对国际空格字符的unicode支持等是否可行?


问题答案:

似乎您可能希望同时使用\s速记字符类和\p{Zs}Unicode属性来匹配Unicode空间。但是,这两个步骤都不能用1个正则表达式替换来完成,因为您需要两个不同的替换,并且ReplaceAllStringFunc只允许使用整个匹配字符串作为参数(我不知道如何检查哪个组匹配)。

因此,我建议使用两个正则表达式:

  • ^[\s\p{Zs}]+|[\s\p{Zs}]+$ -匹配所有前导/尾随空格
  • [\s\p{Zs}]{2,} -匹配字符串中的2个或更多空格符号

样例代码:

package main

import (
    "fmt"
    "regexp"
)

func main() {
    input := "   Text   More here     "
    re_leadclose_whtsp := regexp.MustCompile(`^[\s\p{Zs}]+|[\s\p{Zs}]+$`)
    re_inside_whtsp := regexp.MustCompile(`[\s\p{Zs}]{2,}`)
    final := re_leadclose_whtsp.ReplaceAllString(input, "")
    final = re_inside_whtsp.ReplaceAllString(final, " ")
    fmt.Println(final)
}


 类似资料:
  • 问题内容: 我从数据库查询中接收到一个字符串,然后在将其放入CSV文件之前,删除了所有HTML标记,回车符和换行符。唯一的事情是,我找不到从字符串 之间 删除 多余的 空白的方法。 __ 删除内部空白字符的最佳方法是什么? 问题答案: 不确定确切要什么,但是有两种情况: 如果你只是处理过剩上,你可以使用字符串的开头或结尾,或者将其删除。 如果你正在处理一个字符串中多余的空格考虑多 用单 。 例:

  • 问题内容: 如何删除python字符串中的所有空格?例如,我希望将一个字符串转换为,但是我似乎无法通过以下方式完成此操作: 问题答案: 利用没有sep参数的str.split的行为: 如果只想删除空格而不是所有空格: 过早优化 尽管效率不是主要目标(编写清晰的代码是),但以下是一些初始时间: 请注意,正则表达式已缓存,因此它没有您想象的那么慢。编译事前帮助一些,但在实践中,如果你把这个只会重要 很

  • 问题内容: 我有以下名为“ data.csv”的文件: 我想将其解析为一个熊猫DataFrame,以便DataFrame如下所示: 我能做的最好的事情是: 这让我: 没有这些空格的如何获取DataFrame? 问题答案: 您可以使用转换器: 产量

  • 问题内容: 我有以下字符串迫使我的Python脚本退出: 我需要删除字符串中间的多余空格,因此我尝试使用以下拆分连接脚本: 问题答案: 您的源代码和错误不匹配,错误状态为您未定义变量。 我猜您想要的是:

  • 问题内容: 如何在Python 2.6中删除XML字符串中的空格和换行符?我尝试了以下软件包: etree:此代码段保留原始空格: 我不能使用将提供参数的Python 2.7 。 渺小:一样: 问题答案: 最简单的解决方案可能是使用lxml,您可以在其中设置解析器选项以忽略元素之间的空白: 这可能足以满足您的需求,但是有些警告是安全的: 这只会删除元素之间的空格节点,并尽量不要删除内容混合的元素内

  • 问题内容: 我有一个像这样的字符串: 我想删除字符串中的空格。我试过了,但这只删除了整个字符串前后的空格。我也尝试过,但后来=也被删除了。 如何使用以下方法实现字符串: 问题答案: 删除所有空格和不可见字符(例如,)。 并产生相同的结果。 第二个正则表达式比第一个正则表达式快20%,但是随着连续空格数量的增加,第一个正则表达式的性能优于第二个正则表达式。 如果不直接使用,则将值分配给变量: