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

Posted leeon_l

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则匹配所有括号中的内容&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、[^】]+
第二个表达式中[]匹配单个字符,^】代表除了的字符,+是限定符代表匹配前面子表达式一次或多次,即匹配除了的连续多个字符;

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

以上是关于正则匹配所有括号中的内容&PHP实现的主要内容,如果未能解决你的问题,请参考以下文章

php 正则表达式 匹配网站内容

c# 正则表达式 匹配中括号&颜色过滤

php正则:匹配(),{},[]小括号,大括号,中括号里面的内容

PHP正则提取中文部分内容,怎么实现呀?

[javascript] 获取正则子表达式里的内容

如何用正则表达式匹配括号中的内容,不包含括号