正則匹配全部括號中的內容&PHP實現

正則表達式:(?<=【)[^】]+
注:以匹配中文括號中內容爲例,若是匹配非中文括號,則須要在括號前增長轉義符php

PHP實現示例:正則表達式

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

        var_dump($arrMatches);

執行結果:spa

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

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

clipboard.png

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

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

相關文章
相關標籤/搜索