在Oracle中查找以字母数字开头的字符串

Posted

技术标签:

【中文标题】在Oracle中查找以字母数字开头的字符串【英文标题】:Find strings starting with alphanumeric in Oracle 【发布时间】:2021-04-08 11:21:09 【问题描述】:

我只想搜索所有以字母或数字开头的记录。

我知道有 REGEXP_LIKE 可以查找 col 是否包含字母数字,但无法将其应用于开头。

SELECT * FROM mytable WHERE col1 like 'ABC:XYZ%'

我有以下格式的数据:--

ABC:XYZ
ABC:XYZ (ERW)
ABC:XYZ TMN
ABC:XYZ123
ABC:XYZRTY:YER

我试图只低于输出

ABC:XYZ
ABC:XYZ123
ABC:XYZRTY:YER

问候

【问题讨论】:

'^[A-Za-z]' 您的正则表达式有错字。应该是'^[A-Za-z]' 我会改写我的问题 【参考方案1】:

这样的?采样数据到第 #7 行;您可能感兴趣的查询从第 8 行开始。

SQL> with mytable (col1)  as
  2    (select 'ABC:XYZ'        from dual union all
  3     select 'ABC:XYZ (ERW)'  from dual union all
  4     select 'ABC:XYZ TMN'    from dual union all
  5     select 'ABC:XYZ123'     from dual union all
  6     select 'ABC:XZYRTY:YER' from dual
  7    )
  8  select col1
  9  from mytable
 10  where not regexp_like(col1, '[^[:alnum:]:]');

COL1
--------------
ABC:XYZ
ABC:XYZ123
ABC:XZYRTY:YER

SQL>

【讨论】:

以上是关于在Oracle中查找以字母数字开头的字符串的主要内容,如果未能解决你的问题,请参考以下文章

oracle 如何查找特定字母开头的某个字段?

Linux如何查找特定字符文件或目录

正则表达式:数字开头中间字母结尾数字

shell脚本应用正则表达式grep,sed,awk,的应用

shell脚本应用正则表达式grep,sed,awk,的应用

如何将 Oracle 顶点项限制为数字/字符值