Как ссылаться на захваченную группу определенное количество раз в preg_replace?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как ссылаться на захваченную группу определенное количество раз в preg_replace?

Сообщение Anonymous »

У нас есть группа захвата Z, и мы хотим отобразить эту группу захвата X количество раз с помощью Regex в PHP.
Я не могу найти для этого рабочий синтаксис, например:
  • Это захватывает «Z» 5 или более раз («ZZZZZ») и заменяет его только на «Z».

    Код: Выделить всё

    preg_replace('/(Z){5,}/i','$1',$billing);
    
    // ZZZZZ ---> Z
    
  • При этом буква "Z" захватывается 5 или более раз, но ее необходимо заменить только двумя буквами Z.

    Код: Выделить всё

    preg_replace('/(Z){5,}/i','$1{2}',$billing);
    
    // ZZZZZ ---> Z{2}
    

    Код: Выделить всё

    preg_replace('/(Z){5,}/i','($1){2}',$billing);
    
    // ZZZZZ ---> (Z){2}
    
Единственный способ, который я нашел, — это вручную перепечатать переменную группы захвата ():

Код: Выделить всё

preg_replace('/(Z){5,}/i','$1$1',$billing);

// ZZZZZ   --->   ZZ
Однако я хочу иметь возможность динамически указывать, сколько раз будет отображаться группа захвата, например: Есть ли способ указать, сколько раз уже захваченная группа захвата используется/отображается/выводится динамически, вместо того, чтобы повторять «переменную» группы X раз?
Я пытался найти ответ на этот вопрос, но ответы на мои поиски в Интернете касаются только того, как захватить группу захвата, а не того, как ее отобразить. Не хочу знать про то как захватить, это вывод группы не могу найти как сделать.

Подробнее здесь: https://stackoverflow.com/questions/798 ... eg-replace
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»