<?php
$string = "Ля-Ля-Ля
<?php
$id = Array(41743, 42026, 41740, 41741, 41747, 41748);
Ля-Ля-Ля";
$pattern = "/^\n$id\s{0,1}=\s{0,1}Array([0-9]+);\s{0,1}$/i";
$replacement = "$id = Array(123, 34535, 1345, 1111);";
echo preg_replace($pattern, $replacement, $string);
?>
$id = Array(41743, 42026, 41740, 41741, 41747, 41748); - вот для строки такого вида, то есть количество элементов может меняться, а вот элементы за скобкками не меняются ни когда + нужно искать полностью такие строки для полной замены..."<?php" - всегда встречается до искомой строки
Спустя 10 часов, 37 минут, 26 секунд (5.04.2011 - 09:42) Painbot написал(а):
Написал сам))
'/^\$id\s{0,2}\=\s{0,2}Array\(([0-9]+\, ){1,100}[0-9]+\);$/'
Спустя 23 минуты, 34 секунды (5.04.2011 - 10:06) Ulan написал(а):
очень узко подогнана регулярка под строку поиска. достаточно поставить лишний пробел и она не совпадет. например, если перед $ будет табуляция.
Спустя 12 минут, 48 секунд (5.04.2011 - 10:18) Painbot написал(а):
#^(\$id\s{0,2}\=\s{0,2}Array\(([0-9]+\,\s{0,2}){1,100}[0-9]+\);)$#im
вот так добавил, но чето все равно не ищет((( если строка одна то ищет если -вот так "Ля-Ля-Ля
<?php
$id = Array(41743, 42026, 41740, 41741, 41747, 41748);
Ля-Ля-Ля" или вот так "Ля-Ля-Ля <?php $id = Array(41743, 42026, 41740, 41741, 41747, 41748); Ля-Ля-Ля"
все равно не ищет, в чем может быть проблема?
Спустя 12 минут, 49 секунд (5.04.2011 - 10:31) Painbot написал(а):
Тупанул)) /(\$id\s{0,2}\=\s{0,2}Array\(([0-9]+\,\s{0,2}){1,100}[0-9]+\)/
Спустя 13 минут, 5 секунд (5.04.2011 - 10:44) Ulan написал(а):
у тебя стоит привязка к началу и концу строки. потому если пред $ или после ); есть какие либо символы - поиск не совпадет.
я бы сделал так
/\$id\s*=\s*Array\s*\(.*?\);/si
или так, если массивы только с цифрами
/\$id\s*=\s*Array\s*\([0-9,\s\n]+\);/si
я бы сделал так
/\$id\s*=\s*Array\s*\(.*?\);/si
или так, если массивы только с цифрами
/\$id\s*=\s*Array\s*\([0-9,\s\n]+\);/si
Спустя 22 часа, 18 минут, 21 секунда (6.04.2011 - 09:03) Painbot написал(а):
Ulan - спасибо большое - сегодня утро осознал, что моя регулярка не ищет массивы с одной цифрой - тоесть такие -
$id = Array(41743); , а ваша ищет)))))
$id = Array(41743); , а ваша ищет)))))
Спустя 46 минут, 58 секунд (6.04.2011 - 09:50) Ulan написал(а):
это потому, что у тебя запятая обязательно должна присутствовать после цифр.