|
如果lz能更深入的阐释下可能会更好。
如ltrim,rtrim的处理机制,看看例子可能会明了些!
[php]
SQL> SELECT LTRIM('WWhhhhhaT is tHis w W','Wh') FROM DUAL;
LTRIM('WWHHHHHATISTHISWW','WH'
------------------------------
aT is tHis w W
SQL> SELECT LTRIM('hhhWhhaT is tHis w W','Wh') FROM DUAL;
LTRIM('HHHWHHATISTHISWW','WH')
------------------------------
aT is tHis w W
SQL>
[/php]
大家可以看到,一样的效果。ltrim是从左开始找原串中(一个字符一个字符的找)如果in (查找的字符串中)则继续,这样一直到第一个not in (查找的字符串中)的位置则停止,返回后面子串!感觉内部又调用substr来进行截取的,呵呵!对于rtirm就不说了,仅从右边开始匹配。
刚开始我感觉是很有歧义的函数(字符的处理,不是字符串的),好像关于字符串替换处理的函数大部分都是一个字符一个字符处理的,如translate等!replace特殊些!
[php]
SQL> SELECT replace('hhhWhhaT is tHis w W','Wh','a') FROM DUAL;
REPLACE('HHHWHHATISTHISWW','WH
------------------------------
hhhahaT is tHis w W
SQL> SELECT replace('hhhWahhaT is tHis w W','Wh','a') FROM DUAL;
REPLACE('HHHWAHHATISTHISWW','W
------------------------------
hhhWahhaT is tHis w W
SQL>
[/php]
replace是translate的子集,是按字符串进行匹配的! |
|