Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помощь в составлении регулярки

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Kennedy
Отправлено: 01 Октября, 2014 - 09:25:22
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




Доброго времени суток!

Со вчерашнего вечера бьюсь над составлением регулярки, но до конца не могу ее добить. Need help Улыбка

Имеется что-то вроде этого:

Цитата:
<!tag
one:100
two-three:50
-
four-five:50
-
six:10
tag!>


Нужно было сделать что-то вроде этого:

Цитата:
Первая часть:
[tag=*]
one:100
two-three:50
[/tag]

Вторая часть:
[tag=*]
four-five:50
[/tag]

Третья часть:
[tag=*]
six:10
[/tag]


В один момент мне даже показалось, что я решил эту задачу, вырезая знаки '-', а то что между ними, вставляя в нужные места. До тех пор, пока в нужных строках не оказались фразы, тоже содержащие '-' Недовольство, огорчение Тут мой мозг отказался дальше работать.

Заранее благодарю Улыбка
 
 Top
tato
Отправлено: 01 Октября, 2014 - 09:52:46
Post Id



Посетитель


Покинул форум
Сообщений всего: 468
Дата рег-ции: Сент. 2011  
Откуда: Владивосток


Помог: 8 раз(а)




Если формат прям такой, то:
PHP:
скопировать код в буфер обмена
  1.  
  2. $str = '<!tag
  3. one:100
  4. two-three:50
  5. -
  6. four-five:50
  7. -
  8. six:10
  9. tag!>';
  10.        
  11. $str = explode(PHP_EOL, $str);
  12. print_r($str);
  13.  


результатом будет массив:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. Array
  3.         (
  4.             [0] => <!tag
  5.            [1] =>  one:100
  6.             [2] =>  two-three:50
  7.             [3] =>  -
  8.             [4] =>  four-five:50
  9.             [5] =>  -
  10.             [6] =>  six:10
  11.             [7] =>  tag!>
  12.         )
  13.  


А дальше разбирайте как хотите

(Отредактировано автором: 01 Октября, 2014 - 09:53:43)



-----
просто ?: сложно
 
 Top
Kennedy
Отправлено: 01 Октября, 2014 - 10:32:41
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




tato
Спасибо, что откликнулись, но немного не то. Скажем так, в арсенале нет массивов, БД и прочего Улыбка Только регулярки.

Вот то, что я намудрил. Уверен, что сделано кривей некуда, но это не важно, поскольку используется только в бытовых целях. Главное чтобы работало, а как - не имеет значения Улыбка

Цитата:
(<!tag)(([^-])+[^-])(-)(([^-]|\n)+[^-])(-)(([^-]|\n)+[^tag!>])(tag!>)


Но это работает только в том случае, если в нужных строках нет "-".
 
 Top
tato
Отправлено: 02 Октября, 2014 - 00:52:17
Post Id



Посетитель


Покинул форум
Сообщений всего: 468
Дата рег-ции: Сент. 2011  
Откуда: Владивосток


Помог: 8 раз(а)




Kennedy, ну если опять таки формат строки такой, то по переводу строки смотрите
\n(-)\n


-----
просто ?: сложно
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB