为了账号安全,请及时绑定邮箱和手机立即绑定

比较Go中的字符串

比较Go中的字符串

Go
qq_花开花谢_0 2021-05-20 18:11:40
我试图在一个字符串中找到一个命名捕获组的开头,以创建一个简单的解析器(请参阅相关问题)。为此,该extract函数会记住last4变量中字符的最后一个字符。如果最后四个字符等于“(?P <”,则这是捕获组的开始:package mainimport "fmt"const sample string = `/(?P<country>m((a|b).+)(x|y)n)/(?P<city>.+)`func main() {    extract(sample)}func extract(regex string) {    last4 := new([4]int32)    for _, c := range regex {        last4[0], last4[1], last4[2], last4[3] = last4[1], last4[2], last4[3], c        last4String := fmt.Sprintf("%c%c%c%c\n", last4[0], last4[1], last4[2], last4[3])        if last4String == "(?P<" {            fmt.Print("start of capturing group")        }    }}http://play.golang.org/p/pqA-wCuvux但是这段代码什么也没打印!last4String == "(?P<"永远不会是真的,尽管如果我last4String在循环内打印,此substrin会出现在输出中。然后如何在Go中比较字符串?还有没有比将int32数组转换为字符串更好的方法了fmt.Sprintf("%c%c%c%c\n", last4[0], last4[1], last4[2], last4[3])?还有什么更好的办法吗?我的代码对我来说看起来有点笨拙。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 204 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信