Meridianmeridian

Email Address

identity.person.email

Standard email address (RFC 5322 simplified). Format: local@domain. Universal format but may include internationalized domain names (IDN).

Domain
identity
Category
person
Casts to
VARCHAR
Scope
Universal

Try it

CLI
$ finetype infer -i "john.smith@example.com"
→ identity.person.email

DuckDB

Detect
SELECT finetype('john.smith@example.com');
-- → 'identity.person.email'
Cast expression
LOWER(CAST({col} AS VARCHAR))
Safe cast pipeline
-- Normalise and cast in one step
SELECT TRY_CAST(finetype_cast(my_column) AS VARCHAR) AS clean_value
FROM my_table
WHERE finetype(my_column) = 'identity.person.email';

Struct Expansion

Expression
domain: REGEXP_EXTRACT({col}, '@(.+)$')
local: REGEXP_EXTRACT({col}, '^([^@]+)')

JSON Schema

finetype schema identity.person.email
{
  "$id": "https://meridian.online/schemas/identity.person.email",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Standard email address (RFC 5322 simplified). Format: local@domain. Universal format but may include internationalized domain names (IDN).",
  "examples": [
    "john.smith@example.com",
    "user+tag@domain.org",
    "test123@company.co.uk"
  ],
  "maxLength": 254,
  "minLength": 5,
  "pattern": "^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$",
  "title": "Email Address",
  "type": "string",
  "x-finetype-broad-type": "VARCHAR",
  "x-finetype-transform": "LOWER(CAST({col} AS VARCHAR))"
}

Examples

john.smith@example.comuser+tag@domain.orgtest123@company.co.uk

Aliases

email_address