|
|
|
| здравствуйте
помогите составить регулярное выражение. Есть строка 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
и т.д.
как это сделать? | |
|
|
|
|
|
|
|
для: mishka
(31.07.2010 в 22:16)
| | А без рег. выражения ну прямо никак? Оно вообще нужно для этого? | |
|
|
|
|
|
|
|
для: sim5
(31.07.2010 в 22:30)
| | хмм
конечно можно и без, но мне нужно именно с регулярным выражением | |
|
|
|
|
|
|
|
для: mishka
(31.07.2010 в 23:55)
| | Почему? Кто поставил такое условие? | |
|
|
|
|
|
|
|
для: neadekvat
(31.07.2010 в 23:59)
| | разве это важно кто поставил условие :)? считайте это мой практикум по регулярным выражениям
примерно скажите хоть что надо делать | |
|
|
|
|
|
|
|
для: mishka
(01.08.2010 в 00:04)
| | Какой же это нафиг практикум, если вы спрашиваете решение на форуме? Так неинтересно.. | |
|
|
|
|
|
|
|
для: 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>';
|
| |
|
|
|
|
|
|
|
для: sim5
(01.08.2010 в 00:03)
| | спасибо, ваше решение хорошее, но тем не менее мне нужно регулярное выражение (duh) | |
|
|
|
|
|
|
|
для: mishka
(01.08.2010 в 00:12)
| | А последнее решение, это что по вашему, тяпкой вырублено? В нем и пременяется регулярное выражение. | |
|
|
|
|
|
|
|
для: 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();
}
|
| |
|
|
|
|
|
|
|
для: mishka
(01.08.2010 в 00:25)
| | Дуру не надо городить только, while(m.Success) - это тоже не руг. выражение.
Вы научитесь сперва задачи свои формулировать. Вы даже не потрудились указать, что вам нужно JS-решение. | |
|
|
|
|
|
|
|
для: sim5
(01.08.2010 в 00:27)
| | >Дуру не надо городить только. Вы научитесь сперва задачи свои формулировать. while(m.Success) - это тоже не руг. выражение.
ну нет, тут все действия со строкой производятся внутри рег. выражения, и какие конкретно действия делать он определяет сам, а внешним кодом просто берется результат
у вас же код явно говорит что надо делать, хоть и при помощи регулярного выражения, аналогично вы могли разбить строку на подстроки рег. выражением, а потом их уже обрабатывать, это формально выполняет требование, однако это не то
>Вы даже не потрудились указать, что вам нужно JS-решение.
мне нужно принцип как составить его, а язык реализации не так уж и важен если только не используются какие то специфические для данного языка/библиотеки языка конструкции | |
|
|
|
|
|
|
|
для: mishka
(01.08.2010 в 00:35)
| | Чего вам надо в итоге?
Почитайте спера о RegExp, чтобы знать, что рег. выражения в РНР и JS, это разные методы ("...а язык реализации не так уж и важен"). В книгах же найдете и "принципы формирования" паттернов (надо полагать вас это интересует), это схоже. А как поймете, тогда уже и конкретные вопросы. Иначе будет пустая полемика. Здесь форум по конкретным вопросам, а не электронная кафедра. | |
|
|
|
|
|
|
|
для: sim5
(01.08.2010 в 00:51)
| | >Чего вам надо в итоге?
регулярное выражение (последовательность символов которые я смогу скормить интерпретатору регулярных выражений), я уже говорил
>Почитайте спера о RegExp, чтобы знать, что рег. выражения в РНР и JS, это разные методы ("...а язык реализации не так уж и важен").
...разные методы...?объясните что вы имеете ввиду? если то, что языковые конструкции для использование их в php и js отличаются, так это неважно
>А без рег. выражения ну прямо никак? Оно вообще нужно для этого?
полемику тут начал не я, а вы, я задал конкретный вопрос | |
|
|
|
|
|
|
|
для: mishka
(01.08.2010 в 01:07)
| | >регулярное выражение (последовательность символов которые я смогу скормить интерпретатору регулярных выражений), я уже говорил
Я вам его в примере написал:
>...разные методы...?объясните что вы имеете ввиду?
Это читайте книги.
Вы задали вопрос, указав нужный вам результат. Я вам три варианта представил, включая и с ипользованием рег. выражения.
Оказалось, что вам совсем не это нужно, а что нужно неведомо. Вот я и говорю - вы не понимаете как составлять шаблоны, и если говорить о рег. выражениях в среде РНР и 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\"; }"');
?>
| :) | |
|
|
|
|
|
|
|
для: mishka
(31.07.2010 в 22:16)
| | > как это сделать?
Никак. | |
|
|
|