Java匹配无限嵌套的括号

Java的正则表达式无法处理无限嵌套的括号,但ANTLR提供了解决方案。通过antlr-4.4-complete.jar和文法文件Json.g4,可以轻松实现这个功能。只需简单替换括号类型,就能匹配不同类型的无限嵌套括号。
摘要由CSDN通过智能技术生成

  在Java中单纯依靠正则表达式是无法匹配无限嵌套的括号的,还好有antlr这个大杀器可以轻松解决这个问题,开源就是好啊。

 

1. 材料

antlr-4.4-complete.jar

 

2. 文法文件Json.g4

grammar Json;

@header{
package a3;	
}

LEFT_BRACKET : '{';
RIGHT_BRACKET : '}';
ANY_CHAR : (~('{' | '}'))+;

bracket_body : LEFT_BRACKET (ANY_CHAR | bracket_body)* RIGHT_BRACKET;
expr : (bracket_body)+;

 

2.测试

 

import java.util.List;

import org.antlr.v4.runtime.ANTLRInputStream;
import org.antlr.v4.runtime.CommonTokenStream;

import a3.JsonLexer;
import a3.JsonParser;
import a3.JsonParser.Bracket_bodyContext;
import a3.JsonParser.ExprContext;

public class Test3 {

	public static void main(String[] args)throws Exception {
		run("{}{1111}{1:{aa:{s}}}");

	}
	
	public static void run(St
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值