字母数字字符,空格,法语字符和破折号的正则表达式是什么?

时间:2016-03-01 14:11:52

标签: sql regex oracle

我只想知道字母数字字符,空格法语字符和破折号的正则表达式是什么。我尝试过这个,但它不起作用。

SELECT * FROM my_table
WHERE regexp_like(name_elem1,'[^[:alnum:]^[:blank:]^[àâçéèêëîïôûùüÿñæœ]^[\-]]');

请帮忙

2 个答案:

答案 0 :(得分:1)

我不是Oracle SQL专家,无法测试解决方案,但我宁愿按以下方式编写它:

SELECT * FROM my_table WHERE regexp_like(name_elem1,'[0-9A-Za-z\ \tàâçéèêëîïôûùüÿñæœ]+');

不同的消息来源说人们不能加入正则表达式字符类,所以我明确地说明了它们:[0-9A-Za-z]用于alnum,\ \t用于白色字符和扩展的法语字符列表。

答案 1 :(得分:0)

如果您想要这些字符,那么请不要使用'not'表达式......并考虑不区分大小写。

... regexp_like(name_elem1,'[[:alnum:][:blank:][àâçéèêëîïôûùüÿñæœ]]', 'i');

caveot:这只是寻找与表达式匹配的任何1个字符。

这是官方文件: https://docs.oracle.com/database/121/SQLRF/ap_posix.htm#SQLRF020