Intereting Posts
Создание многомерного массива из таблицы базы данных php ближайшая десятая ценность Учет доктрины Symfony2 Ошибка загрузки Google App Engine для PHPExcel Преобразование RAW-фотографий в JPEG в linux / php Получить первое слово в строке php the_title WordPress Как получить facebook нравится, делиться, комментарии подсчитываются из статьи Добавить пользовательскую ссылку в начало страницы Magento Преобразование html в pdf с арабским PHP. Прочитайте динамически сгенерированный (и эхом) HTML в строку? Использование Content-ID и cid для встроенных изображений электронной почты в Thunderbird Значения сумм в петле foreach php Как использовать глобальный тип пространства имен, намекающий внутри класса с именами в PHP 5.3+? php-скрипты получают значение узла, если оно равно заданному значению; изменение значения узла имеет один и тот же родительский узел Как обновить панели wxAuiManager при обновлении их свойств в wxPHP?

Regex заменит два слова

Я хочу заменить набор строк между двумя символами say & и [] с некоторым другим значением. Например, моя строка похожа на &yyyyyyy[]=&gggggg[]=&bbbbb[]= . Теперь я хочу заменить строку между & и [] на «имя», чтобы она выглядела как &name[]=&name[]=&name[]= . Теперь как это сделать?

 $string = '&yyyyyyy[]=&gggggg[]=&bbbbb[]='; $result = preg_replace('/&([a-zA-Z0-9]+)\[\]/', '&name[]', $string); // Outputs: &name[]=&name[]=&name[]= 
 preg_replace('/&([a-zA-Z0-9]+)\[\]/', '&name[]', "&yyyyyyy[]=&gggggg[]=&bbbbb[]="); 

Что-то вроде этого должно это сделать ..

используя preg_replace или preg_replace_callback

 \&(.*?)\[] 

это должно соответствовать строкам между символом и символом []

 preg_match_all('#\&(.*?)\[]#','&yyyyyyy[]=&gggggg[]=&bbbbb[]=',$matches); array(2) { [0]=> array(3) { [0]=> string(10) "&yyyyyyy[]" [1]=> string(9) "&gggggg[]" [2]=> string(8) "&bbbbb[]" } [1]=> array(3) { [0]=> string(7) "yyyyyyy" [1]=> string(6) "gggggg" [2]=> string(5) "bbbbb" } } 

это регулярное выражение является самым близким, которое я могу получить. Надеюсь, поможет.

Это должно делать то, что вы хотите, и должно соответствовать чему-либо между & и [], которое не является &, [] или =

 $subject = '&yyyyyyy[]=&gggggg[]=&bbbbb[]='; $pattern = '/&([^\[\]\&=]+)\[\]/'; $replacement = '&name[]'; echo preg_replace($pattern, $replacement, $subject, -1);