Вот есть в строке маркеры. Например:
%1%
%2%
(это пример только)
Знаю, что межу % % всегда число, но как его достать, ведь если я просто напишу %(.*)% , то он будет брать и например %привет%
Так вроде не работает : preg_match_all("/%(\d*)%/",$string,$array);
<?
$string="Привет %2% %2% %3% , как дела ? %23% ";
preg_match_all("/%(\d*)%/",$string,$array);
echo $array[0]."<br/>";
echo $array[1]."<br/>";
echo $array[2]."<br/>";
?>
Как мне их заменить найти и второй вопрос как заменить ((((
Спустя 2 часа, 38 секунд (28.10.2011 - 01:04) Winston написал(а):
Поиск всех чисел
Замена
preg_match_all("#%(\d+)%#", $string, $array);
print_r($array);
Замена
echo preg_replace("#%\d+%#", '%здесь было число :)%', $string);
Спустя 20 минут, 15 секунд (28.10.2011 - 01:25) Игорь_Vasinsky написал(а):
Winston
Блин... прлез же...
Поиск
Замена
Блин... прлез же...
Поиск
$str = 'ываывп%2%ывреуепуВ%34%dsggsdg%576%aefwefs%23412%3243rfdfsd';
preg_match_all("#%([^%]\d*)%#", $str, $out);
//Всё твоё в $out[1]
echo '<pre>' . print_r($out, 1) . '</pre>';
Замена
$str = 'ываывп%2%ывреуепуВ%34%dsggsdg%576%aefwefs%23412%3243rfdfsd';
echo preg_replace("#%([^%]\d*)%#", "{MARK}", $str);
Спустя 4 минуты, 8 секунд (28.10.2011 - 01:29) Winston написал(а):
Цитата (Игорь_Vasinsky @ 28.10.2011 - 01:25) |
Winston Блин... прлез же. |
Шевелись быстрее
Спустя 16 минут, 15 секунд (28.10.2011 - 01:45) Игорь_Vasinsky написал(а):
да у меня в буфере лежал ответ я его вставил - кнопка отправить - 404
Спустя 9 часов, 18 минут, 56 секунд (28.10.2011 - 11:04) wollk написал(а):
Знаю что можно создать ещё дополнительные функции и через цикл while, но реально ли сделать всё в одной функции ?
Спустя 17 минут, 23 секунды (28.10.2011 - 11:21) Игорь_Vasinsky написал(а):
А ты сам попробывать не хочешь?
Спустя 3 минуты, 47 секунд (28.10.2011 - 11:25) wollk написал(а):
Я с регулярками не дружу. Через цикл смогу сделать. А всё в однйо функции нет
Спустя 24 минуты, 8 секунд (28.10.2011 - 11:49) wollk написал(а):
Может кому-то пригодится:
$s="ываывп%2%ывреуепуВ%34%dsggsdg%576%aefwefs%23412%3243rfdfsd";
preg_match_all("#%([^%]\d*)%#",$s,$a);
$i=0;
while($i<=count($a[0])-1){
$tx='http://site.ru/insex.php?a='.$a[1][$i];
$s=str_replace($a[0][$i],$tx,$s);
$i++;
}
echo $s;
Спустя 32 минуты, 18 секунд (28.10.2011 - 12:22) Winston написал(а):
Цитата (wollk @ 28.10.2011 - 11:49) |
Может кому-то пригодится: |
Запомни раз и на всегда, регулярки всегда пишутся под конкретную задачу, и всегда их пишут с нуля, исключением можно считать регулярки для проверки мыла или url'a. Твоя регулярка вряд ли понадобится кому-то кроме тебя.
Спустя 2 часа, 47 минут, 54 секунды (28.10.2011 - 15:10) wollk написал(а):
Не соглашуся
Спустя 10 минут, 42 секунды (28.10.2011 - 15:20) Winston написал(а):
Цитата (wollk @ 28.10.2011 - 15:10) |
Не соглашуся |
Почему ?
Спустя 6 минут, 16 секунд (28.10.2011 - 15:27) wollk написал(а):
Ну смотри, Эту фичу я писал для вставки смайлов в текст, просто изменил. Тот кто будет писать, может быть как-то так же захочет сделать
Спустя 54 секунды (28.10.2011 - 15:27) wollk написал(а):
Ведь нас , людей миллионы))) сто процентов какие-то регулярки подойдут и другому. Например мне твои
Но в частности и ты прав.
Но в частности и ты прав.
Спустя 3 часа, 18 минут, 2 секунды (28.10.2011 - 18:45) Игорь_Vasinsky написал(а):
очень маленький процент вероятности... возможно кто-то (кто не дружит с regexp) - по аналогии и соберёт свой паттерн...
Спустя 2 часа, 33 минуты, 27 секунд (28.10.2011 - 21:19) twin написал(а):
Игорь_Vasinsky
Цитата |
очень маленький процент вероятности... |
Программист должен учитывать даже ничтожную вероятность.
Иначе он не программист.
Спустя 2 минуты, 37 секунд (28.10.2011 - 21:22) Игорь_Vasinsky написал(а):
twin
Я вообще не об этом. Я о том что - однажды составленный паттерн для конкретного кода - может не только кому нить - но и самому себе больше не понадобиться никогда.
Я вообще не об этом. Я о том что - однажды составленный паттерн для конкретного кода - может не только кому нить - но и самому себе больше не понадобиться никогда.