Skip to content

regexp(col, pattern)

Описание

Функция regexp() проверяет, соответствует ли строка регулярному выражению. Это синоним для rlike() и regexp_like().

Параметры

  • col: Column - столбец со строками для проверки
  • pattern: String - регулярное выражение для сопоставления

Возвращаемое значение

Boolean - TRUE, если строка соответствует регулярному выражению, иначе FALSE

Пример использования

from pyspark.sql.functions import regexp
from pyspark.sql import SparkSession

# Создаем SparkSession
spark = SparkSession.builder.appName("regexp_example").getOrCreate()

# Создаем DataFrame
data = [
    ("+1 (123) 456-7890"),
    ("invalid_phone"),
    ("+44 20 7123 4567")
]
df = spark.createDataFrame(data, ["phone"])

# Проверяем соответствие номеров телефонов шаблону
result = df.select(
    "phone",
    regexp("phone", "^\\+[0-9]{1,3}[-\\s]?\\(?[0-9]+\\)?[-\\s]?[0-9]+[-\\s]?[0-9]+$").alias("is_valid_phone")
).show()

# Результат:
# +------------------+-------------+
# |phone             |is_valid_phone|
# +------------------+-------------+
# |+1 (123) 456-7890|true         |
# |invalid_phone     |false        |
# |+44 20 7123 4567 |true         |
# +------------------+-------------+

Примечания

  • Функция чувствительна к регистру
  • NULL значения возвращают NULL
  • Для извлечения подстрок по регулярному выражению используйте regexp_extract()
  • Для замены по регулярному выражению используйте regexp_replace()
  • Для подсчета совпадений используйте regexp_count()