|
|
|
|
|
для: alexey_tihonenko
(11.07.2009 в 20:28)
| | Даже если так, то нужно сделать кроссбраузерный вариант | |
|
|
|
|
|
|
|
для: ddhvvn
(11.07.2009 в 18:58)
| | Первый вариант под виндой выводит 0. preg_match не находит совпадения. | |
|
|
|
|
|
|
|
для: GeorgeIV
(11.07.2009 в 16:51)
| | т.е. первый вариант не работает под виндой? | |
|
|
|
|
|
|
|
для: Alexey_Tihonenko
(11.07.2009 в 16:37)
| | Этот вариант работает под Юниксом,
<?php
$str = "a--b
c--d";
$pattern = "/b$/m";
echo preg_match($pattern, $str);
?>
|
а этот под виндой
<?php
$str = "a--b
c--d";
$pattern = "/b\r$/m";
echo preg_match($pattern, $str);
?>
|
Так что, не все так однозначно, но по крайней мере яснее, чем вначале. | |
|
|
|
|
|
|
|
для: GeorgeIV
(11.07.2009 в 16:21)
| | Ну, у меня практической цели не было сейчас, я пока просто изучаю регулярные выражения. Главное было понять как работают модификаторы "s" и "m" в связке с PHP. Этой цели вполне удалось достичь. Еще раз спасибо за ответы! | |
|
|
|
|
|
|
|
для: alexey_tihonenko
(11.07.2009 в 16:11)
| | Боюсь, что это самая неустойчивая проверка, я пробовал это код сохранять в форматах юникса и винды и получал разный результат. | |
|
|
|
|
|
|
|
для: GeorgeIV
(11.07.2009 в 15:51)
| | Большое спасибо за дополнение! Теперь все понятно. Концом строки является не последний видимый символ в ней, а символ переноса строки - \r. И, например, чтобы определть заканчивается ли какая-либо из строк текста на "b" можно использовать вот такой скрипт:
<?php
$str = "a--b
c--d";
$pattern = "/b\r$/m";
echo preg_match($pattern, $str);
?>
|
Который теперь работает!!! | |
|
|
|
|
|
|
|
для: GeorgeIV
(11.07.2009 в 15:46)
| |
m - означате multiline, соответственно переносы строк не являются концом текста, для
анализа берется весь текст. В примере конец - это d.
|
С этой фразой, я все таки не прав. Все с точностью наоборот в первой фразе, только с дополнением, что переносы строк также начинают иметь позицию в строке, а не являются просто концом строки. | |
|
|
|
|
|
|
|
для: Alexey_Tihonenko
(11.07.2009 в 13:44)
| |
$str = "a--b\r
c--d";
$pattern = "/\r$/m";
echo preg_match($pattern, $str);
|
| |
|
|
|
|
|
|
|
для: GeorgeIV
(11.07.2009 в 11:40)
| | Не могли бы Вы привести какой-нибудь простой пример с метасимволом $ в котором при использовании модификатора m соответствие шаблону будет найдено, а при отсутствии использования этого модификатора - не будет?
А то что-то я совсем запутался..... | |
|
|
|
|