У меня есть строка, как это:Как создать динамическую группу захвата в регулярном выражении?
$str ="
- group1
- group2
- group3
";
Также у меня есть этот regex:
/(\-\s\w+)\n(\-\s\w+)\n(\-\s\w+)/
Как вы знаете, есть три группы захвата: $1
, $2
и $3
. Я сделал эту группу вручную. Я имею в виду, если я добавлю это в строку выше:
- group4
- group5
Тогда это регулярное выражение не соответствует им.
Ну, у меня есть постоянная закономерность: (\-\s\w+)
, И я хочу, чтобы создать отделенную группу захвата по количеству матчей элементов в строке. Заяц несколько примеров:
example1:
$str="
- group 1
";
мне нужно регулярное выражение, чтобы дать мне всю строку, $1
.
Example2:
$str="
- group 1
- group 2
";
мне нужно регулярное выражение, чтобы дать мне первую линию строки (- group 1
) по $1
и второй линии (- group 2
) по $2
Ok ну, как вы видите в приведенных выше примерах, строка является динамической, но она соответствует константе nt pattern ... Теперь я хочу знать, как создать динамическую группу захвата в соответствии со строкой?
Почему группы захвата? 'preg_match_all ('/ -. * /', $ str, $ matches);' – AbraCadaver
Время от времени возникает этот вопрос. Для каждой группы захвата в PHP PCRE regex нет стека. Используйте несколько совпадений, как показано выше. Всегда есть способы обойти это ограничение. –
Duh, может быть, вы делаете замены ... – AbraCadaver