Afaik 正向后视在 Oracle SQL 中不起作用,因此您必须使用一些 regexp_replace 或 regexp_substr。确切的正则表达式可能取决于您的数据来源。我假设您有一个专栏,其中包含您向我们展示的内容;一种方法可能是:
create table tmp_test (s varchar2(100));
insert into tmp_test values ('bcm0.0');
insert into tmp_test values ('ge-0/1/0.32767');
select substr(regexp_substr(s, '\.\d+$'), 2) from tmp_test; -- or
select regexp_replace(s, '^.*\.(\d+)$', '\1') from tmp_test;
如果您的文本并不孤单,则必须更改一些正则表达式,特别是删除“锚” ^ 和 $。就像是
insert into tmp_test values ('this is the ge-0/1/0.32767 fact');
select substr(regexp_substr(s, '\.\d+'), 2) from tmp_test;
select regexp_replace(s, '.*\.(\d+).*', '\1') from tmp_test;