我必须从列值包含除字母、数字、连字符、下划线、空格和逗号之外的任何其他内容的表中提取行。如果只有上述字符,则不应拉行。谢谢你的帮助。
我在尝试一些regexp的东西,但是没有得到想要的结果。

REGEXP_LIKE(col, '[^[:alnum:]]|(^-)|(^,)|[^[:space:]]|(^_)')

例如:
TD-6 TTY-60X3APTNO DAY  => should not retrieve
TY-2YYTY 20TRH TY L/W   => Should retrieve
TIRREG CL3- HARDWARE &  => Should retrieve

最佳答案

使用Oracle's regex conventions

REGEXP_LIKE(col, '[^[:alnum:] _,-]')

Here's a SQLFilddle
方括号的工作方式是,方括号内的任何内容都匹配,或者如果用插入符号(^)引导方括号中的项,则除方括号内的内容之外的任何内容都匹配。

10-07 15:40