正则匹配获取中括号中的内容

本文详细介绍了正则表达式中的先行断言与后行断言,包括四种不同的形式,并通过JavaScript及Java实例展示了如何使用这些断言来匹配特定模式。
javascript版本

正则

	(?<=\[).+?(?=\])

脚本

/(?<=\[).+?(?=\])/.exec("[2021-06-17 16:25:55.815] [INFO] [http-nio-8080-exec-8]")[0];
"2021-06-17 16:25:55.815"
java版本

正则

	(?<=\[).+?(?=\])

脚本

	Pattern pattern = Pattern.compile("(?<=\\[).+?(?=\\])");
    String message = "[2021-06-17 17:19:10.579] [INFO] [http-nio-8080-exec-14] ";
    Matcher m = pattern.matcher(message);

    //日期转换
    if (m.find()) {
        System.out.println(m.group(0));
    }

这里用的就是正则的先行断言和后行断言
正则表达式的先行断言和后行断言一共有 4 种形式:

  • (?=pattern) 零宽正向先行断言(zero-width positive lookahead assertion)
  • (?!pattern) 零宽负向先行断言(zero-width negative lookahead assertion)
  • (?<=pattern) 零宽正向后行断言(zero-width positive lookbehind assertion)
  • (?<!pattern) 零宽负向后行断言(zero-width negative lookbehind assertion)

正则表达式的先行断言(lookahead)和后行断言(lookbehind)
https://www.runoob.com/w3cnote/reg-lookahead-lookbehind.html

参考:
https://segmentfault.com/q/1010000008553692
https://my.oschina.net/u/3797416/blog/3171717

脚本测试地址
https://tool.oschina.net/regex/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值