正則匹配所有括號中的內容&PHP實現
阿新 • • 發佈:2018-12-24
正則表示式:(?<=【)[^】]+
注:以匹配中文括號中內容為例,如果匹配非中文括號,則需要在括號前增加轉義符
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、[^】]+
第二個表示式中[]
匹配單個字元,^】
代表除了】
的字元,+
是限定符代表匹配前面子表示式一次或多次,即匹配除了】
的連續多個字元;
組合起來即實現了預期效果~