正则匹配所有括号中的内容&PHP实现

正则表达式:(?<=【)[^】]+
注:以匹配中文括号中内容为例,如果匹配非中文括号,则需要在括号前增加转义符

PHP实现示例:

<?php
        $strSubject = "abc【111】abc【222】abc【333】abc";
        $strPattern = "/(?<=【)[^】]+/";
        $arrMatches = [];
        preg_match_all($strPattern, $strSubject, $arrMatches);

        var_dump($arrMatches);

执行结果:

~ » php mytest/test_preg.php                                                                                                                                                                  iwaimai@bogon
array(1) {
  [0]=>
  array(3) {
    [0]=>
    string(3) "111"
    [1]=>
    string(3) "222"
    [2]=>
    string(3) "333"
  }
}

解析:
1、(?<=【)
第一个表达式是一个『非获取匹配』,即匹配括号,但并不获取括号;

这里写图片描述

2、[^】]+
第二个表达式中[]匹配单个字符,^】代表除了的字符,+是限定符代表匹配前面子表达式一次或多次,即匹配除了的连续多个字符;

组合起来即实现了预期效果~

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值