1. 程式人生 > >正則匹配所有括號中的內容&PHP實現

正則匹配所有括號中的內容&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                                                                                                                                                                  [email protected]
array(1) {
  [0]=>
  array(3) {
    [0]=>
    string(3) "111"
    [1]=>
    string(3
) "222" [2]=> string(3) "333" } }

解析:
1、(?<=【)
第一個表示式是一個『非獲取匹配』,即匹配括號,但並不獲取括號;

這裡寫圖片描述

2、[^】]+
第二個表示式中[]匹配單個字元,^】代表除了的字元,+是限定符代表匹配前面子表示式一次或多次,即匹配除了的連續多個字元;

組合起來即實現了預期效果~