查询仅获取具有特殊字符的记录

时间:2015-07-16 12:46:09

标签: sql regex oracle

我正在尝试编写一个查询,告诉我某些记录是否只包含特殊字符。例如"%^&%& ^%&"然而会错误"%HH678 *(*))"很好(因为它也有字母数字值。我写了下面的查询,但它只适用于英文字母和数字,如果列有其他字符,如普通话,那么它也是&#39 ;没有给出预期的价值。非常感谢任何帮助。

SELECT * FROM test WHERE REGEXP_LIKE(sampletext, '[^]^A-Z^a-z^0-9^[^.^{^}^ ]' );

2 个答案:

答案 0 :(得分:1)

你可以试试这个,

regexp_like(text, '^[^A-Za-z0-9]+$')

仅当输入文本包含特殊字符,即仅包含不是字母或数字的字符时,才匹配文本。

答案 1 :(得分:0)

要检测仅包含非重音字母,数字或空格字符以外的字符的字符串,请尝试以下操作:

regexp_like(text,'^[^a-zA-Z0-9[:space:]]+$')

如果您认为标点字符不是特别的,而是将[:punct:]添加到要忽略的字符类中。

如果您正在寻找一组特定的字符,您可以使用只有那些感兴趣的字符的字符类,例如一些常见的重音字符(请注意字符类{{中缺少前导^ 1}}:

[]