拆分一串一边的字母,一边是数字

Nic*_*ckS 5 go

我对这个问题一片空白.我收到格式的字符串.. AB1234 ABC1234 ABC123 AB12等等.基本上,航班号

他们可以有一到两个字母和1到5个数字.我想分割字符串,以便最终得到两个字符串,一个带数字,另一个带字母.

有任何想法吗?我看过这些,但看不到一个会做这个工作 https://www.dotnetperls.com/split-go

更新:

刚刚找到并将使用它,除非有更好的选择.删除所有字母/数字以创建所需的字符串https://golangcode.com/how-to-remove-all-non-alphanumerical-characters-from-a-string/

pet*_*rSO 5

您可以利用Go是一种编程语言并编写简单的Go函数这一事实.例如,

package main

import (
    "fmt"
)

func parseFlight(s string) (letters, numbers string) {
    var l, n []rune
    for _, r := range s {
        switch {
        case r >= 'A' && r <= 'Z':
            l = append(l, r)
        case r >= 'a' && r <= 'z':
            l = append(l, r)
        case r >= '0' && r <= '9':
            n = append(n, r)
        }
    }
    return string(l), string(n)
}

func main() {
    flights := []string{"AB1234", "ABC1234", "ABC123", "AB12"}
    for _, flight := range flights {
        letters, numbers := parseFlight(flight)
        fmt.Printf("%q: %q %q\n", flight, letters, numbers)
    }
}
Run Code Online (Sandbox Code Playgroud)

游乐场:https://play.golang.org/p/pDrsqntAP6E

输出:

"AB1234": "AB" "1234"
"ABC1234": "ABC" "1234"
"ABC123": "ABC" "123"
"AB12": "AB" "12"
Run Code Online (Sandbox Code Playgroud)