oracle怎么截取指定字符后面的字符串,或者删除指定字符前面的字符串也行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle怎么截取指定字符后面的字符串,或者删除指定字符前面的字符串也行相关的知识,希望对你有一定的参考价值。

例如:我要截取D:\AssetsManagement\resource\ehcache\test.txt 这段路径下的文件名test.txt。
求大神答疑

取最后一个\后面的字符
select substr('D:\AssetsManagement\resource\ehcache\test.txt',1+(select instr ('D:\AssetsManagement\resource\ehcache\test.txt','\',1,(select length('D:\AssetsManagement\resource\ehcache\test.txt') - length(replace('D:\AssetsManagement\resource\ehcache\test.txt','\','')) from dual)) from dual)
,length('D:\AssetsManagement\resource\ehcache\test.txt')-(select instr ('D:\AssetsManagement\resource\ehcache\test.txt','\',1,(select length('D:\AssetsManagement\resource\ehcache\test.txt') - length(replace('D:\AssetsManagement\resource\ehcache\test.txt','\','')) from dual)) from dual)
) from dual

如果前面D:\AssetsManagement\resource\ehcache\是固定的就直接replace了
select replace('D:\AssetsManagement\resource\ehcache\test.txt','D:\AssetsManagement\resource\ehcache\','') from dual
参考技术A 这个可以有。首先你得统计"\"出现的次数,我看到网上有代码,我是手机回答不好截图。意思就是将"\"替换成空。可以搜索:oracle 统计字符在字符串中出现的次数。有了斜杠出现的次数就可以用instrb函数取到最后出现的斜杠位置,再之后就用substr函数取最后斜杠至字符串结尾的字符即可。 参考技术B 用instr确定指定字符的位置,开始截取的位置就是这个位置+1,再用substr截取剩余字符。以你给的字符串为例:
SQL> select substr('D:\AssetsManagement\resource\ehcache\test.txt',instr('D:\AssetsManagement\resource\ehcache\test.txt','\',-1,1)+1) from dual;

SUBSTR('D:\ASSETSMANAGEMENT\RE
------------------------------
test.txt
参考技术C 用substr和INSTR配合使用

PHP截取指定#分割字符后面的数据

有一在线123.php网页,打开后是下面的数据(实时更新的数据)
2012-10-09 19:00:03#1349834403#06:35:58#0#0#0#-#0#0#-#0#0#0#-#1682.8#33.86#8173.66#654.75#864#1543#740.5#167.4#21.4

这是一整行数据,总共有100多个左右的#分割,每个#后面是一个数据,数据有时候为0,有时候是数字,有时候是符号-

我想要这些数据:
从第63个#开始,
第1,第2 是一组数据 实际是第63,64个#后面的数据。
第5,第6是第二组数据 实际是第67,68 #后面的数据
第35,第36是第三组数据,实际是97,98 #后面的数据

然后把第一个数据,设置为变量 U1 ,U2
第二组为O1,O2
第三组为Y1,Y2

然后创建3列4行表格,并在表格里显示出来这些数据。每组数据有个名称,例如:

更新时间 <服务器时间> <本地时间>
金牌 U1 U2
银牌 O1 O2
铜牌 Y1 Y2

需要用PHP输出,用utf8格式。
非常感谢~!!

参考技术A 先根据#拆分成数组,explode();
然后取数据下标值,对应的就可以了。追问

你好,我对php网页真不懂。
请给出完整的网页代码。现在的水平,只能看成品代码一点一点学习。
谢谢

追答

$str='2012-10-09 19:00:03#1349834403#06:35:58#0#0#0#-#0#0#-#0#0#0#-#1682.8#33.86#8173.66#654.75#864#1543#740.5#167.4#21.4';
$explode = explode('#',$str); //使用#号分拆字符串,返回数组
//你要取63,64后面的值,现在这个字符串没有那么多我就把值减小点取1,2的值,由于数组下标是从0开始所以需要取值时减一
echo 'U1=>'.$explode[0].'U2=>'.$explode[1];
//其它几个依此类推

追问

需要加一段读 读取在线网页 ,然后获取网页数据
我不懂php编程,
我是需要成品.php网页,然后放到网站上就可以显示出来的这样。

完工有额外奖励。

谢谢

追答

$str = @file_get_contents('文件地址') or die('文件读取失败');
$explode = explode('#',$str); //使用#号分拆字符串,返回数组
//你要取63,64后面的值,现在这个字符串没有那么多我就把值减小点取1,2的值,由于数组下标是从0开始所以需要取值时减一
echo 'U1=>'.$explode[0].'U2=>'.$explode[1];
//其它几个依此类推

本回答被提问者采纳

以上是关于oracle怎么截取指定字符后面的字符串,或者删除指定字符前面的字符串也行的主要内容,如果未能解决你的问题,请参考以下文章

怎么用JS截取指定的字符后面的部分,包括这个字符本身!

mysql 截取指定位置后面的所有的字符

sql语句,能够截取指定字段后面的一个字符串吗?

php怎么截取字符后面几个字符?

oracle从某一个字符开始删除前面所有的字符

python截取指定分隔符后面的字符串