Java
String str = "<WWW>abcdefg<WWW>";
String result = str.substring(str.indexOf(">")+1, str.lastIndexOf("<"));
StringUtils.substringBefore(“abcdec”, “c”); 結(jié)果是:ab 這里是以第一個(gè)”c”為標(biāo)準(zhǔn)。
StringUtils.substringBeforeLast(“abcdec”, “c”) 結(jié)果為:abcde這里是以倒數(shù)第一個(gè)”c”為標(biāo)準(zhǔn)。
SQL
對(duì)“*”及以前的字符進(jìn)行截取
在sql中可以使用下邊函數(shù)進(jìn)行截取特殊字符:
substr(str,instr(str,'*',1)+1)
其中,使用了substr函數(shù)和instr函數(shù)。
1、substr(string,start_position,[length])求子字符串,返回字符串
第一個(gè)參數(shù)表示要截取的字符串,第二個(gè)表示起始位置,第三個(gè)表示截取的長(zhǎng)度,可省略。
2、instr(string,subString,position,ocurrence) 查找字符串的位置
第一個(gè)參數(shù)表示源字符串,第二個(gè)是要查找的字符,第三個(gè)是要查找的開始位置,第四個(gè)是查找的字符是第幾個(gè)。
取一個(gè)字段中兩個(gè)字符之間信息
1、substring(a.specifications,charindex(':',a.specifications,charindex(';',specifications))+1,1)
SQL報(bào)錯(cuò)
FUNCTION db.charindex does not exist
2、使用substring_index語法
用法規(guī)則:
substring_index(“待截取有用部分的字符串”,“截取數(shù)據(jù)依據(jù)的字符”,截取字符的位置N)
具體要截取第N個(gè)逗號(hào)前部分的字符,在字符串中以逗號(hào)為索引,獲取不同索引位的字符。
N可以為負(fù)數(shù),表示倒數(shù)第N個(gè)索引字符后面的字符串。(有負(fù)號(hào)的時(shí)候,可以將整個(gè)字符倒過來看,依舊是第N個(gè)字符前面的部分。)
具體例子:
首先假定需要截取的字符串為“192;168;8;203”,這里截取的依據(jù)是分號(hào):“;”
結(jié)果如下:
取第一個(gè)逗號(hào)前的字符串 :
SELECT SUBSTRING_INDEX(‘192;168;8;203’,’;’,1);
==>得到結(jié)果為: 192
取最后逗號(hào)后面的部分:
SELECT SUBSTRING_INDEX(‘192;168;8,203’,’;’,-1);
==>得到結(jié)果為: 203
取第2個(gè)逗號(hào)前那部分字符串里,最后逗號(hào)后面的部分
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(‘192;168;8;203’,’;’,2),’;’,-1);
==>得到結(jié)果為: 168
取倒數(shù)第二個(gè)逗號(hào)后面部分字符串,再去這部分里第一個(gè)都號(hào)前的部分:
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(‘192;168;8,203’,’;’,-2),’;’,1);
==> 得到結(jié)果為:8