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

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

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

 

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

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

тема: Как подобрать регулярное выражение...
 
 автор: bartik   (05.04.2010 в 15:39)   письмо автору
 
 

Объясните с регулярными выражениями, к примеру есть строка
Размеры: 1x521 и 15.0 и 61.6. Из этой строки нужно в отдельный массив взять
1x521, 15.0, 61.6.
Почему массив, потому что кол-во таких строк может быть больше одной...

  Ответить  
 
 автор: cheops   (05.04.2010 в 17:09)   письмо автору
 
   для: bartik   (05.04.2010 в 15:39)
 

Строка всегда в такой форме?
Размеры: 1x521 и 15.0 и 61.6.

Если да, то можно отталкиваться от следующего скрипта
<?php 
  $text 
"Объясните с регулярными выражениями, к примеру есть строка
Размеры: 1x521 и 15.0 и 61.6. Из этой строки нужно в отдельный массив взять 
1x521, 15.0, 61.6.
Почему массив, потому что кол-во таких строк может быть больше одной..."
;
  
$pattern "|Размеры:[\s]*([\d]+x[\d]+)[\s]*и[\s]*([\d\.]+)[\s]*и[\s]*([\d\.]+)\.|is";
  
preg_match_all($pattern$text$outPREG_SET_ORDER);
  echo 
"<pre>";
  
print_r($out);
  echo 
"</pre>";
?>

  Ответить  
 
 автор: bartik   (05.04.2010 в 22:27)   письмо автору
 
   для: cheops   (05.04.2010 в 17:09)
 

А если строка в такой форме
<table>
<td><tr>1x521</td></tr> (тут всегд есть знак x)
<td><tr>15.0</td></tr> (тут на конце всегда 0) 
<td><tr>61.6</td></tr> (тут всегда стоит .
<td><tr>4314</td></tr> (тут всегда 4 цифры)
</table>


Как быть тут?
то есть вопрос именно в том, как подобрать такое регулярное выражение, чтобы условие было конкретно для 1x521, 15.0(тут на конце всегда 0) и 61.6 и 4314 (тут всегда 4 цифры)

И ещё, не нашёл в книге описания, что означает оператор i, is, isU - если не трудно опишите их.
Отдельно спасибо за книгу, использую PHP 5 Санкт-петербург 2005 год.

  Ответить  
 
 автор: big-trot   (06.04.2010 в 23:14)   письмо автору
 
   для: bartik   (05.04.2010 в 22:27)
 

(1x521).*?(15\.0).*?(61\.6) и т.д.

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

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