Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: регулярное выражение
 
 автор: mishka   (31.07.2010 в 22:16)   письмо автору
 
 

здравствуйте

помогите составить регулярное выражение. Есть строка 1.2.3.4.5.6.7, мне необходимо последовательно получить следующие строки
1.2.3.4.5.6.7
2.3.4.5.6.7
3.4.5.6.7
4.5.6.7
и т.д.

как это сделать?

  Ответить  
 
 автор: sim5   (31.07.2010 в 22:30)   письмо автору
 
   для: mishka   (31.07.2010 в 22:16)
 

А без рег. выражения ну прямо никак? Оно вообще нужно для этого?

  Ответить  
 
 автор: mishka   (31.07.2010 в 23:55)   письмо автору
 
   для: sim5   (31.07.2010 в 22:30)
 

хмм

конечно можно и без, но мне нужно именно с регулярным выражением

  Ответить  
 
 автор: neadekvat   (31.07.2010 в 23:59)   письмо автору
 
   для: mishka   (31.07.2010 в 23:55)
 

Почему? Кто поставил такое условие?

  Ответить  
 
 автор: mishka   (01.08.2010 в 00:04)   письмо автору
 
   для: neadekvat   (31.07.2010 в 23:59)
 

разве это важно кто поставил условие :)? считайте это мой практикум по регулярным выражениям

примерно скажите хоть что надо делать

  Ответить  
 
 автор: neadekvat   (01.08.2010 в 00:14)   письмо автору
 
   для: mishka   (01.08.2010 в 00:04)
 

Какой же это нафиг практикум, если вы спрашиваете решение на форуме? Так неинтересно..

  Ответить  
 
 автор: sim5   (01.08.2010 в 00:03)   письмо автору
 
   для: mishka   (31.07.2010 в 23:55)
 

Почему именно с регулярным? Потому что "круто"? Использование рег. выражений должно быть обосновано, а не потому, что так "модно".
<?
//если ваша строка именно
//1.2.3.4.5.6.7
//хотя будет работать вплоть до
//1.2.3.4.5.6.7.8.9.10
//то достаточно
$s '1.2.3.4.5.6.7';
for(
$i=0$i<strlen($s); $i+=2) echo substr_replace($s''0$i) . '<br>';
//если строка
//1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16 и т.д.
//вполе хватит
echo $s '<br>';
$s explode(".",$s);
while(
count($s)>0) {
  
array_shift($s);
  echo 
implode('.'$s) . '<br>';
}
//если вам ради моды
for($i=0$k=count(explode(".",$s)); $i<$k$i++) echo preg_replace("/\d+./"""$s$i) . '<br>';

  Ответить  
 
 автор: mishka   (01.08.2010 в 00:12)   письмо автору
 
   для: sim5   (01.08.2010 в 00:03)
 

спасибо, ваше решение хорошее, но тем не менее мне нужно регулярное выражение (duh)

  Ответить  
 
 автор: sim5   (01.08.2010 в 00:15)   письмо автору
 
   для: mishka   (01.08.2010 в 00:12)
 

А последнее решение, это что по вашему, тяпкой вырублено? В нем и пременяется регулярное выражение.

  Ответить  
 
 автор: mishka   (01.08.2010 в 00:25)   письмо автору
 
   для: sim5   (01.08.2010 в 00:15)
 

for($i=0, $k=count(explode(".",$s)); $i<$k; $i++)

это не регулярное выражение

нужно что то вроде

Match m=Regex.Match("1.2.3.4.5.6.7", pattern);
while(m.Success)
{
...//some actions with captured value
m=m.NextMatch();
}

  Ответить  
 
 автор: sim5   (01.08.2010 в 00:27)   письмо автору
 
   для: mishka   (01.08.2010 в 00:25)
 

Дуру не надо городить только, while(m.Success) - это тоже не руг. выражение.
Вы научитесь сперва задачи свои формулировать. Вы даже не потрудились указать, что вам нужно JS-решение.

  Ответить  
 
 автор: mishka   (01.08.2010 в 00:35)   письмо автору
 
   для: sim5   (01.08.2010 в 00:27)
 

>Дуру не надо городить только. Вы научитесь сперва задачи свои формулировать. while(m.Success) - это тоже не руг. выражение.
ну нет, тут все действия со строкой производятся внутри рег. выражения, и какие конкретно действия делать он определяет сам, а внешним кодом просто берется результат
у вас же код явно говорит что надо делать, хоть и при помощи регулярного выражения, аналогично вы могли разбить строку на подстроки рег. выражением, а потом их уже обрабатывать, это формально выполняет требование, однако это не то

>Вы даже не потрудились указать, что вам нужно JS-решение.
мне нужно принцип как составить его, а язык реализации не так уж и важен если только не используются какие то специфические для данного языка/библиотеки языка конструкции

  Ответить  
 
 автор: sim5   (01.08.2010 в 00:51)   письмо автору
 
   для: mishka   (01.08.2010 в 00:35)
 

Чего вам надо в итоге?
Почитайте спера о RegExp, чтобы знать, что рег. выражения в РНР и JS, это разные методы ("...а язык реализации не так уж и важен"). В книгах же найдете и "принципы формирования" паттернов (надо полагать вас это интересует), это схоже. А как поймете, тогда уже и конкретные вопросы. Иначе будет пустая полемика. Здесь форум по конкретным вопросам, а не электронная кафедра.

  Ответить  
 
 автор: mishka   (01.08.2010 в 01:07)   письмо автору
 
   для: sim5   (01.08.2010 в 00:51)
 

>Чего вам надо в итоге?
регулярное выражение (последовательность символов которые я смогу скормить интерпретатору регулярных выражений), я уже говорил
>Почитайте спера о RegExp, чтобы знать, что рег. выражения в РНР и JS, это разные методы ("...а язык реализации не так уж и важен").
...разные методы...?объясните что вы имеете ввиду? если то, что языковые конструкции для использование их в php и js отличаются, так это неважно

>А без рег. выражения ну прямо никак? Оно вообще нужно для этого?
полемику тут начал не я, а вы, я задал конкретный вопрос

  Ответить  
 
 автор: sim5   (01.08.2010 в 01:22)   письмо автору
 
   для: mishka   (01.08.2010 в 01:07)
 

>регулярное выражение (последовательность символов которые я смогу скормить интерпретатору регулярных выражений), я уже говорил
Я вам его в примере написал:
"/\d+./"

>...разные методы...?объясните что вы имеете ввиду?
Это читайте книги.

Вы задали вопрос, указав нужный вам результат. Я вам три варианта представил, включая и с ипользованием рег. выражения.
Оказалось, что вам совсем не это нужно, а что нужно неведомо. Вот я и говорю - вы не понимаете как составлять шаблоны, и если говорить о рег. выражениях в среде РНР и JS, то с вами, не знающему всего из этой области, все может превратиться в пустую полемику.

Вы хотите, чтобы вам тут справочник всех матасимволов, модификаторов и прочего, что применяется в рег. выражениях представили? Так нет, это в книгах читайте и изучайте.

  Ответить  
 
 автор: .....   (01.08.2010 в 12:00)
 
   для: mishka   (01.08.2010 в 01:07)
 

<?php
passthru
('perl -e "while(\'1.2.3.4.5.6.7\' =~ /(?=\b\d)/g) { print \"$\'\n\"; }"');
?>
:)

  Ответить  
 
 автор: sms-send   (01.08.2010 в 02:15)   письмо автору
 
   для: mishka   (31.07.2010 в 22:16)
 

> как это сделать?

Никак.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования