Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > регулярка не работает - возврат каретки


Автор: Satell 10.7.2012, 10:49
Код

$firstStr = '<td valign="middle" align="center">Hour</td>
     <td valign="middle" align="center">320</td>';
$returnVal = preg_match('/Hour<\\/td>.*<td valign="middle" align="center">(.*)<\\/td>/s', $firstStr, $matches);
echo $matches[1];  


как в preg_match прописать возврат каретки, перевод строки вместо .* ?
\r\n не работает! 

Автор: serezhka1986 10.7.2012, 11:20
По-идеи \\r\\n
Если надо вытянуть число 320, не проще ли сделать так?
Код

$returnVal = preg_match('|<td valign="middle" align="center">([0-9]*)</td>|', $firstStr, $matches);

Результат http://regexpr.ru/?pattern=%7C%3Ctd+valign%3D%22middle%22+align%3D%22center%22%3E%28%5B0-9%5D*%29%3C%2Ftd%3E%7C&subject=%3Ctd+valign%3D%22middle%22+align%3D%22center%22%3EHour%3C%2Ftd%3E%0D%0A+++++%3Ctd+valign%3D%22middle%22+align%3D%22center%22%3E320%3C%2Ftd%3E
Если же там может быть не только число, то такой способ не подойдет.

Автор: baldina 10.7.2012, 11:59
там не только перевод строки, но и пробелы
Код

\s*\n?\r?\s*

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)