使用regexp_replace查找字符串是否包含数字

时间:2014-09-11 15:16:20

标签: regex oracle11g

我想查找字符串是否仅使用regexp_replace是纯字符串。 如果它不是纯字符串,则将字符串指定为XX; 否则,请使用字符串。

例如: 如果一个字符串是' A1',那么因为有一个数字,所以它不是纯字符串而且outout将是XX。 如果字符串是AB,则除了aplha之外没有数字或任何其他内容,请使用AB。

注意:这只需要使用regexp_replace在一个奇怪的要求中完成。 我知道如何使用regexp_like或translate等来完成。但是,我只想用regexp_replace来做。

3 个答案:

答案 0 :(得分:0)

我不了解Oracle regexp_replace方法,但我不知道'泛型'正则表达式将是: 正则表达式= [a-z][A-Z] // Only alphabetical characters , upper case or lower case

答案 1 :(得分:0)

感谢所有人。通过一些R& D,我能够找到适用的解决方案。

select case when length('A1') = length(trim(regexp_replace('A1','[[:digit:]]',' '))) then 'string'
else 'alphanumeric'
end from dual

答案 2 :(得分:-1)

create table regexp_replace_example(test_string varchar2(100) not null);

insert into regexp_replace_example(test_string) values ('A1');
insert into regexp_replace_example(test_string) values ('AB');

select test_string, case 
when regexp_replace(test_string,'[^a-zA-Z]') != test_string then 'XX' 
else test_string 
end as output_value
from regexp_replace_example;

drop table regexp_replace_example;