SQL - REGEX 如果它有一个@符号,则匹配整个单词

Posted

技术标签:

【中文标题】SQL - REGEX 如果它有一个@符号,则匹配整个单词【英文标题】:SQL - REGEX Match the whole word if it has an @ symbol in it 【发布时间】:2021-12-28 17:04:21 【问题描述】:

所以我使用的是 Snowflake,特别是 REGEXP_REPLACE 函数。我正在寻找一个正则表达式,它将匹配文本字段中带有@符号的任何单词。

例子:

RAW_DATA CLEANED_DATA
here is a sample and then an email@gmail.com here is a sample and then an xxxxx
abc@test.com xxxxx

到目前为止我尝试过的是:

Select regexp_replace('ABC@gmail.com' , '(([a-zA-Z]+)(\W)?([a-zA-Z]+))', 'xxxxxxx') as result;

结果:

xxxxxxx@xxxxxxx.xxxxxxx

【问题讨论】:

【参考方案1】:

你可以使用

Select regexp_replace('here is a sample and then an email@gmail.com' , '\\S+@\\S+', 'xxxxx') as result;

这里,

\S+ - 一个或多个非空白字符 @ - 一个 @ 字符 \S+ - 一个或多个非空白字符

【讨论】:

以上是关于SQL - REGEX 如果它有一个@符号,则匹配整个单词的主要内容,如果未能解决你的问题,请参考以下文章

模式 ( regex ) 和找到的值之间的相似性

SQL Regex substr模式匹配

Regex 正则表达式中几个符号([ ] ^ ?: ?= ?!)的概念

7- java_regex

std::regex,匹配字符串的开始/结束

phpstorm 搜索