golang正则表达式将所有内容都匹配为“。”。

lig*_*ght -1 regex go

我正在尝试做一些正则表达式,使所有内容都匹配到第一个.

字符串是这样的: hostkafka1.kafka.server:type=BrokerTopicMetrics,name=FailedProduceRequestsPerSec,topic=auto.tooling.files.received.v1.MeanR^Cost","metric_path":"dsdpecard01kfk06.kafka.server:type=BrokerTopicMetrics,name=FailedProduceRequestsPerSec,topic=credit-card.servicing.accounts.authorized-user.created.v1.MeanRate","type":null,"region":"us-east-1

我想比赛 hostkafka1

我可以使用/.+?(?=\.)/其他语言,但无法在golang中使用...

Pet*_*ter 5

确实没有理由为了这种琐碎的任务而淘汰正则表达式引擎。您不是在使用普通语言。正如您的问题所证明的,编写起来更加清晰(并且运行速度更快):

if n := strings.IndexByte(s, '.'); n >= 0 {
    fmt.Println(s[:n])
} else {
    // no match
}
Run Code Online (Sandbox Code Playgroud)

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