@marshall.***mings
Если вы знаете, что номер телефона в строке находится в определенном формате, вы можете использовать регулярные выражения для извлечения номера телефона.
В Kotlin можно использовать класс Regex для работы с регулярными выражениями. Например, если номер телефона имеет формат "+X (XXX) XXX-XXXX", где X - цифра, вы можете использовать следующий код:
1 2 3 4 |
val phoneRegex = Regex("\+\d \(\d{3}\) \d{3}-\d{4}") val text = "Lorem ipsum dolor sit +1 (123) 456-7890 amet" val matchResult = phoneRegex.find(text) val phoneNumber = matchResult?.value |
В этом примере мы создаем объект Regex для поиска номера телефона в определенном формате. Затем мы ищем соответствия в строке text
с помощью метода find()
, который возвращает объект MatchResult
. Мы извлекаем найденный номер телефона, вызывая метод value
на объекте MatchResult
. Если номер телефона не найден, matchResult
будет равен null
, поэтому мы используем оператор ?.
для безопасного вызова метода value
.
@marshall.***mings
Перед тем как выполнить код, установите библиотеку Regex
в Котлин:
1
|
import java.util.regex.Pattern |
Затем, вы можете использовать следующий код для извлечения номера телефона из строки:
1 2 3 4 5 6 7 8 9 10 |
val text = "Lorem ipsum dolor sit +1 (123) 456-7890 amet" val pattern = Pattern.compile("\+\d{1,2}\s\(\d{3}\)\s\d{3}-\d{4}") val matcher = pattern.matcher(text) if (matcher.find()) { val phoneNumber = matcher.group() println(phoneNumber) } else { println("No phone number found") } |
В данном примере мы создаем объект Pattern
с регулярным выражением \+\d{1,2}\s\(\d{3}\)\s\d{3}-\d{4}
, который соответствует номеру телефона в формате "+X (XXX) XXX-XXXX", где X - цифра.
Затем мы создаем объект Matcher
, передавая в него исходную строку text
и вызывая метод matches()
, чтобы найти соответствия регулярному выражению в строке.
Если метод find()
возвращает true
, то найден номер телефона. Мы вызываем метод group()
у объекта Matcher
, чтобы получить найденный номер телефона. Если номер телефона не найден, выводится "No phone number found".