[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Регулярное выражение((
wollk
Подскажите.

Вот есть в строке маркеры. Например:
%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
Блин... прлез же.

Шевелись быстрее tongue.gif

Спустя 16 минут, 15 секунд (28.10.2011 - 01:45) Игорь_Vasinsky написал(а):
да у меня в буфере лежал ответ biggrin.gif я его вставил - кнопка отправить - 404 biggrin.gif biggrin.gif biggrin.gif

Спустя 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 написал(а):
Ведь нас , людей миллионы))) сто процентов какие-то регулярки подойдут и другому. Например мне твои wink.gif


Но в частности и ты прав.

Спустя 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
Я вообще не об этом. Я о том что - однажды составленный паттерн для конкретного кода - может не только кому нить - но и самому себе больше не понадобиться никогда.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.