标识由阿拉伯字母数字和特殊字符混合组成的字符串中的特殊字符



我有一个需求,我需要识别一个字符串是否有任何特殊/垃圾字符,不包括阿拉伯语和字母数字和空格。我在下面试过,但它没有检测到spl字符

select count(*) from table
where not regexp_like (column1,UNISTR('[600-6FF750-77F870-89F8A0-8FFFB50-FDFFFE70-FEFF030-039041-05A061-07A]'));

列具有以下值'طًيAa1@#$'

你有NOT REGEXP_LIKE(column, allowed_characters)

这意味着任何包含至少一个允许字符的字符串将从正则表达式返回TRUE,因此将被WHERE子句排除。

你想要REGEXP_LIKE(column, disallowed_characters)

这将识别任何包含至少一个不允许字符的字符串。

您可以在正则表达式内使用^来完成此操作(^表示"不包含这些字符")

select count(*) from table
where regexp_like (Column1, UNISTR('[^600-6FF750-77F870-89F8A0-8FFFB50-FDFFFE70-FEFF030-039041-05A061-07A]'));

演示;https://dbfiddle.uk/Rq1Zzopk

相关内容

  • 没有找到相关文章

最新更新