我在 Go 中编写了以下代码来提取字符串内部的两个值。
我使用了两个正则表达式来查找数字(float64)。
第一个结果是正确的,只有数字。但第二个是错误的。
这是代码:
package main
import (
"fmt"
"regexp"
)
func main() {
// RegExp utiliza la sintaxis RE2
pat1 := regexp.MustCompile(`[^m2!3d][\d\.-]+`)
s1 := pat1.FindString(`Torre+Eiffel!8m2!3d-48.8583701!4d-2.2944813!3m4!1s0x47e66e2964e34e2d:0x8ddca9ee380ef7e0!8m2!3d-48.8583701!4d-2.2944813`)
pat2 := regexp.MustCompile(`[^!4d][\d\.-]+`)
s2 := pat2.FindString(`Torre+Eiffel!8m2!3d-48.8583701!4d-2.2944813!3m4!1s0x47e66e2964e34e2d:0x8ddca9ee380ef7e0!8m2!3d-48.8583701!4d-2.2944813`)
fmt.Println(s1) // Print -> -48.8583701
fmt.Println(s2) // Print -> m2 (The correct answer is "-2.2944813")
}
这里我修改语法
pat2 := regexp.MustCompile( !4d[\d\.-]+)
我得到以下答案:
!4d-2.2944813
但这不是我所期待的。
临摹微笑
GCT1015
相关分类