Рубрики
Uncategorized

Регулярное сопоставление всех скобок и реализация PHP

Автор оригинала: David Wong.

Регулярное выражение: (?<=【)[^】]+ Примечание. Например, чтобы сопоставить содержимое в китайских скобках, если оно соответствует некитайским скобкам, вам необходимо добавить escape-символ перед скобками

Пример реализации 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、 [^】]+ Во втором выражении [] Соответствует одному символу, ^】 В дополнение к представительным Персонажам, + Является ли квалификатор, представляющий одно или несколько вложенных выражений перед сопоставлением, то есть совпадением, за исключением Последовательных символов;

В сочетании для достижения желаемых результатов~