java用正则表达式截取json多余的字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java用正则表达式截取json多余的字符串相关的知识,希望对你有一定的参考价值。

例如
"name":"zhang","pass':'123'1245
用正则表达式获取的结果是
"name":"zhang","pass':'123'
去掉1245
1245这些字符串不固定

这样的话,只需要截取需要的字符串即可。

举例:

public static void main(String[] args) 
String parse="[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]";
String regex="FIX_ACC:(.*?),OP_FLAG";//别忘了使用非贪婪模式!
Matcher matcher=Pattern.compile(regex).matcher(parse);
while(matcher.find())

  String ret=matcher.group(1);
   System.out.println(ret);

参考技术A 需要用正则表达式吗?你直接用“”分割字符串,再把前面的字符串加个“”不就完了么?我不知道是否还有其他的约束,如果单从你的举例来看,完全没有必要用正则表达式

String instr="\"name\"\:\"zhang\",\"pass\'\:\'123\'1245";
String [] str=instr.split("");
String oustr=str[0] + "";
忘了“”要不要转义了,如果需要你加上就是了
参考技术B 需要用正则表达式吗?你直接用“”分割字符串,再把前面的字符串加个“”不就完了么?我不知道是否还有其他的约束,如果单从你的举例来看,完全没有必要用正则表达式

String instr="\"name\"\:\"zhang\",\"pass\'\:\'123\'1245";
String [] str=instr.split("");
String oustr=str[0] + "";
忘了“”要不要转义了,如果需要你加上就是了

以上是关于java用正则表达式截取json多余的字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何用JS正则表达式截取URL的图片名称和后缀

java 去掉小数点后面多余的0(用正则表达式)。

正则表达式截取两个指定字符串之间的内容?

Java 正则表达式 替换字符串中人名

js 正则表达式 截取字符串

php正则表达式字符串中提取数字,并截取其中的6位