我只想知道字母数字字符,空格法语字符和破折号的正则表达式是什么。我尝试过这个,但它不起作用。
SELECT * FROM my_table
WHERE regexp_like(name_elem1,'[^[:alnum:]^[:blank:]^[àâçéèêëîïôûùüÿñæœ]^[\-]]');
请帮忙
答案 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