我想查找字符串是否仅使用regexp_replace是纯字符串。 如果它不是纯字符串,则将字符串指定为XX; 否则,请使用字符串。
例如: 如果一个字符串是' A1',那么因为有一个数字,所以它不是纯字符串而且outout将是XX。 如果字符串是AB,则除了aplha之外没有数字或任何其他内容,请使用AB。
注意:这只需要使用regexp_replace在一个奇怪的要求中完成。 我知道如何使用regexp_like或translate等来完成。但是,我只想用regexp_replace来做。
答案 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;