sql 开头和结尾

Jef*_*ffy 3 regex sql oracle

我试图使用regexp_like()函数在 Oracle SQL 中查找以 D 或 K 开头并以 2 或 3 结尾的字符串。

REGEXP_LIKE(属性,'(^D|^K)')显示

DL71
DR93
DW11
KL62
KT03
KV29
Run Code Online (Sandbox Code Playgroud)

REGEXP_LIKE(属性,'(^D|^K)*')显示

AT94
BV06
CD52
DL71
DR93
DW11
FD21
KL62
KT03
KV29
Run Code Online (Sandbox Code Playgroud)

REGEXP_LIKE(属性,'*(^2|^3)')显示

CD52
DR93
KL62
KT03
Run Code Online (Sandbox Code Playgroud)

REGEXP_LIKE(属性,'(^D|^K)*(^2|^3)')显示

CD52 
DR93
KL62        
KT03  
Run Code Online (Sandbox Code Playgroud)

我应该如何纠正呢?

数据如下:

Attribute
AT94
BV06
CD52
DL71
DR93
DW11
FD21
KL62
KT03
KV29
Run Code Online (Sandbox Code Playgroud)

Gor*_*off 6

我想您正在寻找:

WHERE REGEXP_LIKE(Attribute, '^[DK].*[23]$')
Run Code Online (Sandbox Code Playgroud)

您正在寻找字符类。它们由方括号分隔。

正则表达式:

  • ^在模式的开头意味着表达式以模式开始。
  • [DK]是与其中一个字符精确匹配的字符类。
  • .*匹配任意数量的字符(换行符可能是一个问题)。
  • [23]是与这些字符之一完全匹配的字符类。
  • $在模式的末尾意味着表达式以此模式结束——在本例中,23在末尾。