【发布时间】:2014-12-31 13:44:45
【问题描述】:
我正在使用名为“REGEXP_LIKE”的函数,下一个模式如下:
^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$
但是,我有一列包含要分析的下一个值:
REGEXP_LIKE (column_name,'^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$')
FRANÞOISVERBEKE@TISCALINET.BE
GENEVIÞVE.DELSOIR@MINFIN.FED.BE
CREVECOEURÆ-OLI@HOTMAIL.COM
HERVÉ.GHILBERT@SKYNET.BE
正如您所注意到的,它们都包含特殊字符,并且当我将函数与此模式一起使用时,它们都被认为是正确的。
如果我没有指定特殊字符,你知道为什么吗?如何使用此功能和此模式排除所有特殊字符?
【问题讨论】:
-
其他人已经在这里检查过这个(可能略有不同的问题)。我建议您查看这个问题的答案,stackoverflow.com/questions/156430/…。
-
@Patrick 很棒的链接。但我认为这里的问题是非 ASCII 字符与似乎只有 ASCII 的正则表达式匹配。
-
嗨,添加对非 ASCII 字符的支持是什么意思?目前,表中的值是这样的。我不能修改它们,我只需要过滤它们。
-
它们没有被过滤掉,因为例如,连字
Æ在A-Z范围内 - 至少在您在数据库中使用的任何字符集中。
标签: oracle oracle11g oracle-sqldeveloper