実装例
import文に"regexp"
を追加
toInt64()
の引数にチェックしたい文字列を入れることで数字が抜き出されてint64
型が返ってくる
func toInt64(strVal string) int64 {
rex := regexp.MustCompile("[0-9]+")
strVal = rex.FindString(strVal)
intVal, err := strconv.ParseInt(strVal, 10, 64)
if err != nil {
fmt.Println(err)
}
return intVal
}
解説
rex := regexp.MustCompile("[0-9]+")
MustCompile
は正規表現が間違っていたらエラーを出力する。
ここで"[0-9]+"
の部分が数字だけを抜き出すための表現。
strVal = rex.FindString(strVal)
strVal
(string型)の中に入っている数字だけを抜き出して文字列としてstrVal
に再代入している。
もしstrVal
が"str123and456"
のようになっていて、全ての数字をリストで抜き出したいときにはFindAllString
を使う。
複数抜き出したい場合
submatchall := rex.FindAllString(str1, -1)
for _, element := range submatchall {
fmt.Println(element)
}
Output
123
456