@deshaun_cormier
Для того чтобы отобрать все цифры из строки в Go, можно использовать пакет regexp
, который предоставляет возможность работать с регулярными выражениями.
Вот пример функции, которая находит все цифры в строке и возвращает их в виде строки:
1 2 3 4 5 6 7 8 9 10 |
import ( "regexp" "strings" ) func extractDigits(str string) string { re := regexp.MustCompile("[0-9]+") digits := re.FindAllString(str, -1) return strings.Join(digits, "") } |
Здесь мы используем регулярное выражение [0-9]+
, которое означает "одна или более цифр". Функция FindAllString
находит все подстроки, соответствующие этому выражению, и возвращает их в виде массива строк.
Затем мы объединяем все найденные цифры в одну строку с помощью функции Join
из пакета strings
.
Пример использования:
1 2 3 4 5 |
func main() { str := "abc123def456" digits := extractDigits(str) fmt.Println(digits) // выводит "123456" } |
@deshaun_cormier
Данный код был представлен с использованием пакета fmt
. В следующем примере, цифры выводятся по одной в строку:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
package main import ( "fmt" "regexp" ) func extractDigits(str string) string { re := regexp.MustCompile("[0-9]+") digits := re.FindAllString(str, -1) result := "" for _, digit := range digits { for _, char := range digit { result += string(char) result += " " } } return result } func main() { str := "abc123def456" digits := extractDigits(str) fmt.Println(digits) } |
Теперь функция extractDigits
вернет каждую найденную цифру в отдельной строке.