使用ORACLE查找第五个位置是否为字母而不是数字

使用ORACLE查找第五个位置是否为字母而不是数字,oracle,Oracle,我如何用甲骨文判断第五个位置是否是字母而不是数字 我最后一次尝试使用以下语句: REGEXP_LIKE (table_column, '([abcdefghijklmnopqrstuvxyz])'); 尝试: 或: 尝试: 或: 也许你更愿意检查第5位是否包含一个数字(这意味着它不是其他的东西),也就是说,做与你现在做的相反的事情 为什么??因为“字母”不仅仅是ASCII码;看看我的示例中的第4行-它包含克罗地亚字符,这些字符不在[a-z](或[a-z])之间 也许你更愿意检查第5位是否包含一

我如何用甲骨文判断第五个位置是否是字母而不是数字

我最后一次尝试使用以下语句:

REGEXP_LIKE (table_column, '([abcdefghijklmnopqrstuvxyz])');
尝试:

或:

尝试:

或:


也许你更愿意检查第5位是否包含一个数字(这意味着它不是其他的东西),也就是说,做与你现在做的相反的事情

为什么??因为“字母”不仅仅是ASCII码;看看我的示例中的第4行-它包含克罗地亚字符,这些字符不在[a-z](或[a-z])之间


也许你更愿意检查第5位是否包含一个数字(这意味着它不是其他的东西),也就是说,做与你现在做的相反的事情

为什么??因为“字母”不仅仅是ASCII码;看看我的示例中的第4行-它包含克罗地亚字符,这些字符不在[a-z](或[a-z])之间


锚定到字符串的开头,否则可能会得到意外的结果。这是可行的,但是删除插入符号(字符串锚点的开头),它将返回“TRUE”!注意,它使用不区分大小写的标志“i”

select 'TRUE'
from dual
where regexp_like('abcd4fg', '^.{4}[A-Z]', 'i');

锚定到字符串的开头,否则可能会得到意外的结果。这是可行的,但是删除插入符号(字符串锚点的开头),它将返回“TRUE”!注意,它使用不区分大小写的标志“i”

select 'TRUE'
from dual
where regexp_like('abcd4fg', '^.{4}[A-Z]', 'i');

还有另一种方法:

regexp_like(table_column, '^....[[:alpha:]]')
使用字符类[[:alpha:][]将拾取所有字母大写、小写、重音等,但将忽略数字、标点符号和空白字符

如果您关心的是字符不是数字,则使用

not regexp_like(table_column, '^....[[:digit:]]')


还有另一种方法:

regexp_like(table_column, '^....[[:alpha:]]')
使用字符类[[:alpha:][]将拾取所有字母大写、小写、重音等,但将忽略数字、标点符号和空白字符

如果您关心的是字符不是数字,则使用

not regexp_like(table_column, '^....[[:digit:]]')


过了一会儿,我找到了一个解决方案:解码(LPAD(SUBSTR(SUBSTR)(collumn,regexp_instr(collumn,'myfield:'))+9,7),5),1)“A”,“是字符A”,“B”,“是字符B”,“C”,“是字符C”,“D”,“D”,“E”,“是字符E”,“F”,“是字符F”,“G”,“是字符G”,“H”,“是字符H”,“I”,“是字符I”,“J”,“是字符J”,“是数字”)为什么只有小写字母?像=+^%$这样的字符呢?过了一会儿,我找到了一个解决方案:解码(LPAD)(SUBSTR(SUBSTR(collumn,regexp_instr(collumn,'myfield:')+9,7,5),1),'A','is character A','B','C','C','D','s character D','E','s character E','F','s character G','s character G','H','s character H','I','s character J','s character is character J','s number')为什么只有小写?像=-+^%$#这样的字符怎么样?很酷,但为什么答案不查找大写或至少转换为大写或小写?很酷,但为什么答案不查找大写或至少转换为大写或小写?
not regexp_like(table_column, '^....\d')