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\\-\\.]*
希望对你有帮助:)