字符串 - 在数字前获取字符

the*_*hai 2 go

我有一些字符串,例如E2 9NZ, N29DZ,EW29DZ.在上面的例子中E,我需要在第一个数字之前提取字符: N,, EW.我应该使用正则表达式吗?该字符串包看起来真的不错,但似乎并不来处理这种情况(提取特定类型之前的所有内容).

编辑:

为了澄清"问题:"我不知道用什么方法是更地道,以,也许有可能提供更好的性能.

pet*_*rSO 6

例如,

package main

import (
    "fmt"
    "unicode"
)

func DigitPrefix(s string) string {
    for i, r := range s {
        if unicode.IsDigit(r) {
            return s[:i]
        }
    }
    return s
}

func main() {
    fmt.Println(DigitPrefix("E2 9NZ"))
    fmt.Println(DigitPrefix("N29DZ"))
    fmt.Println(DigitPrefix("EW29DZ"))
    fmt.Println(DigitPrefix("WXYZ"))
}
Run Code Online (Sandbox Code Playgroud)

输出:

E
N
EW
WXYZ
Run Code Online (Sandbox Code Playgroud)

如果没有数字,例如"WXYZ",并且您不想要返回任何内容,请更改return sreturn "".