java正則截取
Ⅰ java怎麼用正則表達式截取一段字元串
首先比要知道正則表達式的寫法;
s.slip("s");//用s來截取字元串片段。
s.slip("\\D");//通過非數字來截取字元串比如34234jdds434323kds79090dsdd皆可以將字元串竭誠三段
Ⅱ java用正則表達式截取json多餘的字元串
這樣的話,只需要截取需要的字元串即可。
舉例:
publicstaticvoidmain(String[]args){
Stringparse="[{CSTM_NO:"11118",CSTM_NAME:"廣東XX電力有限公司",FIX_GNL:"111810158",FIX_ACC:"D201306070003",OP_FLAG:"正常",BUSS_KIND_NAME:"三個月定期存款",BAL:"25,178,750.00",AVAL_BAL:"25,178,750.00",OP_DATE:"2013-06-07",DUE_DATE:"2013-12-07",ROWNUM_:1,idx:0},{CSTM_NO:"11118",CSTM_NAME:"廣東XX電力有限公司",FIX_GNL:"111810158",FIX_ACC:"D201306070002",OP_FLAG:"正常",BUSS_KIND_NAME:"三個月定期存款",BAL:"25,178,750.00",AVAL_BAL:"25,178,750.00",OP_DATE:"2013-06-07",DUE_DATE:"2013-12-07",ROWNUM_:3,idx:2},{CSTM_NO:"11118",CSTM_NAME:"廣東XX電力有限公司",FIX_GNL:"111810158",FIX_ACC:"D201306070005",OP_FLAG:"正常",BUSS_KIND_NAME:"三個月定期存款",BAL:"25,178,750.00",AVAL_BAL:"25,178,750.00",OP_DATE:"2013-06-07",DUE_DATE:"2013-12-07",ROWNUM_:4,idx:3}]";
Stringregex="FIX_ACC:(.*?),OP_FLAG";//別忘了使用非貪婪模式!
Matchermatcher=Pattern.compile(regex).matcher(parse);
while(matcher.find())
{
Stringret=matcher.group(1);
System.out.println(ret);
}
}
Ⅲ java截取字元串不同的幾種方式
1.split()+正則表達式來進行截取。將正則傳入split()。返回的是一個字元串數組類型。不過通過這種方式截取會有很大的性能損耗,因為分析正則非常耗時。
Stringstr="abc,12,3yy98,0";
String[]strs=str.split(",");
for(inti=0,len=strs.length;i<len;i++){
System.out.println(strs[i].toString());
}
運行結果:
abc
12
3yy98
0
2.通過subString()方法來進行字元串截取。subString通過不同的參數來提供不同的截取方式
2.1隻傳一個參數
例如:
Stringsb="bbbdsajjds";
sb.substring(2);
將字元串從索引號為2開始截取,一直到字元串末尾。(索引值從0開始);
2.2傳入2個索引值
Stringsb="bbbdsajjds";
sb.substring(2,4);
從索引號2開始到索引好4結束(並且不包含索引4截取在內,也就是說實際截取的是2和3號字元);
運行結果如下:
bdsajjds
bd
3.通過StringUtils提供的方法
StringUtils.substringBefore(「dskeabcee」,「e」);
/結果是:dsk/
這里是以第一個」e」,為標准。
StringUtils.substringBeforeLast(「dskeabcee」,「e」)
結果為:dskeabce
這里以最後一個「e」為准。
Ⅳ java如何用正則表達式截取一段文字
String ss = "456ddd45698dbw189";
String regex = "[^0-9]+";
String[] strs = ss.split(regex);
其中strs[0]就是字元串開頭部分數字,strs[strs.length-1]就是字元串中結尾部分的數字。
Ⅳ java如何能截取正則中的字元串,請看內容
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MatcherDemo {
public static void main(String[] args) {
String[] strings = new String[] {
"test123wqyeaasdasd",
"asdtesxxxt123qwdawqe",
"ajsdtsa123asda",
"asdateshwt12312aqwe" };
Pattern pattern = Pattern.compile("te.*?t123(.*?)a");
for (String string : strings) {
Matcher matcher = pattern.matcher(string);
if (matcher.find()) {
System.out.println(string + " 匹配成功 " + matcher.group(1));
} else {
System.out.println(string + " 匹配失敗");
}
}
}
}
輸出:
test123wqyeaasdasd 匹配成功 wqye
asdtesxxxt123qwdawqe 匹配成功 qwd
ajsdtsa123asda 匹配失敗
asdateshwt12312aqwe 匹配成功 12
Ⅵ java正則表達式截取字元串
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
publicclassHello{
publicstaticvoidmain(String[]args){
Stringre="\[([^\]]+)\]";
Stringstr="[您好],abcdefg,[abc]";
Patternp=Pattern.compile(re);
Matcherm=p.matcher(str);
while(m.find()){
System.out.println(m.group(1));
}
}
}
將m.group(1)組建成你自己想要的格式就好了
Ⅶ java 正則 截取字元串
Java正則表達式:(?<=異常消息:).*?(?=服務方向:)
Java正則匹配的例子如下:
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
publicclassI{
publicstaticvoidmain(String[]args){
Stringstr="act..001[異常服務系統名稱:TSS.異常服務名稱:orderBuy.返>回類型:E.服務異常碼:1314.異常消息:首次購買或全額贖回後再次購買都需要滿足首次投資金額2000000.00.服務方向:A]";
Stringregex="(?<=異常消息:).*?(?=服務方向:)";
Patternp=Pattern.compile(regex);
Matcherm=p.matcher(str);
while(m.find()){
System.out.println(m.group());
}
}
}
運行結果:
首次購買或全額贖回後再次購買都需要滿足首次投資金額2000000.00.
Ⅷ java 正則表達式截取非數字
如果把數字截取掉後只是字母那就可以這樣辦:
匹配字母:[a-zA-z]*
意思是字母的組合出現一次或兩次;
如果後面的不僅是字母還有別的東西的話 ,那就截取前面數字好了,
匹配不是數字,-,和小數點的組合就好了,如下:
[^\\d\\-\\.]*
希望對你有幫助:)