On Thu Apr 1, 2021 at 4:45 PM -03, Sharan Guhan wrote: > r := regexp.MustCompile(`Core Count: [0-9]+`) > match := r.FindAllStringSubmatch(cmd_output, -1)
As of the "efficiently" part, you should compile the regexp once instead of each call to ParseFillCpuInfo, a common practice is to use a package-level scoped variable but even better (for efficiency) would be keep it with strings.Index approach, as such: count := -1 const substr = "Core Count: " if i := strings.Index(input, substr); i >= 0 { countStart := i + len(substr) const digits = "0123456789" j := 0 for strings.ContainsRune(digits, rune(input[countStart+j])) { j++ } count, err := strconv.Atoi(input[countStart : countStart+j]) // handle err } You can benchmark both approaches using testing.B, have fun. https://golang.org/pkg/testing/#B -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CACXYA0GSJR6.UVYEID10NHU0%40pampas.