go 语言:(字符串处理) 字段提取

发布于 2022-09-02 08:44:19 字数 142 浏览 22 评论 0

在go语言中怎样取出一个字符串中的数字部分, 对于规则的数据类型,例如日志等,其都有固定的格式,怎样取出某一个部分呢?
例如:
var s = "MemTotal: 1001332 kB"

我想要其中的每一个字段,怎样提取呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

小帐篷 2022-09-09 08:44:19

不管任何语言,对于字符串或者单个的字符的处理来说,一般有两种方法,一种是直接对字符串进行处理,另一种是通过正则表达式。
在go语言中,对于上诉的字符串,可以直接对字符串进行处理函数,即通过strings包,来对字符串处理;另一种通过正则表达式的库regexp来对字符串进行处理。


  • 对于上面类型的字符串,使用字符串处理函数strings.Fields()就可以做到, 当然函数并不是只有一个,你也可以自己定义,总之函数有很多。
    例如:

func GetFields (str string) []string {
     var sub = strings.Fields(str)
     return sub 
}

这里只写出了函数,请自行测试,谢谢。

  • 使用正则的函数库,正则表达式非常的强大,在一般的情况下,上面的字符串处理就足可以需求。

昔日梦未散 2022-09-09 08:44:19

试试正则表达式。

给我一枪 2022-09-09 08:44:19
var s = "MemTotal: 1001332 kB"
var valid = regexp.MustCompile("[0-9]")
fmt.Println(valid.FindAllStringSubmatch(s, -1))
烟燃烟灭 2022-09-09 08:44:19

对于这个需求,正则应该是最有效的方法了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文