我有一个表,sales,其中有一列,email_address。我想过滤为仅包含销售表中包含非字母数字字符或特殊字符的记录。其中包括 A-Z(小写/大写)、带重音符号和波形符的字符、0-9 以及以下内容:
`~!@#$%^&*()_-+={}[]|\:";'<>,.?/
现在,我正在使用以下内容:
select *
from db.sales
where email_address !~ '^[.a-zA-Z0-9!@#$%^&*()_\+={}\[\]|\\;:\"<>\,\./?\-]'
AND email_addr !~ '[[alphanum]]'
不幸的是,像这样的条目正在被采纳:
我想弄清楚,如何删除那些具有“标准”字符的字段,并仅过滤那些具有“非标准”字符(例如表情符号、数学符号)的字段?
您可以将电子邮件地址与不包括字母数字和特殊字符的字符集的正则表达式模式相匹配:
select *
from db.sales
where email_address ~ '[^.a-zA-Z0-9!@#$%^&*()_\+={}\[\]|\\;:\"<>\,\./?\-]'