英文:
Golang Regular expression to separate a formula
问题
需要将类似于1-(a+b-b-d)*100的表达式拆分为1、a+b-b-d和100。
我尝试了(\+|-|\*|\/),它将字符串拆分为1 (a b b d) 100。
英文:
Need to split something like 1-(a+b-b-d)*100 into 1, a+b-b-d, 100
I tried (\+|-|\*|\/) which will split the string into 1 (a b b d) 100
答案1
得分: 1
正则表达式模式:
^(\d+?)\-(\(.+?\))\*(\d+?)$
package main
import (
	"log"
	"regexp"
)
func main() {
	reg := regexp.MustCompile(`^(\d+?)\-(\(.+?\))\*(\d+?)$`)
	str := `1-(a+b-b-d)*100`
	// see: https://pkg.go.dev/regexp#Regexp.FindAllSubmatch
	ret := reg.FindAllSubmatch([]byte(str), -1)
	log.Printf("%s %s %s", ret[0][1], ret[0][2], ret[0][3])
}
英文:
regular expression pattern:
^(\d+?)\-(\(.+?\))\*(\d+?)$
package main
import (
	"log"
	"regexp"
)
func main() {
	reg := regexp.MustCompile(`^(\d+?)\-(\(.+?\))\*(\d+?)$`)
	str := `1-(a+b-b-d)*100`
	// see: https://pkg.go.dev/regexp#Regexp.FindAllSubmatch
	ret := reg.FindAllSubmatch([]byte(str), -1)
	log.Printf("%s %s %s", ret[0][1], ret[0][2], ret[0][3])
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。


评论