Kubiki
Новичок
символ "\n" в регулярных выражениях
Столкнулся с занимательной проблемой.
Оказывается символ \n воспринимается в регулярных выражениях как переход на новую строчку только если он находится в скобках "\n", а в скобках '\n' он воспринимается как буква 'n'.
Хотя по логике, если мы хотим отобразить точку (или любой другой специальный символ), то пишем "\\." или '\.' Так почему же эта логика не срабатывает для "\\n" или '\n'?
Вот простой пример:
$text =
'test1
test2
';
$find = "[^\n]*\n";
ereg($find, $text, $Match);
foreach ($Match as $key=>$value) echo "\n$value";
unset($Match);
$find = '[^\n]*\n';
ereg($find, $text, $Match);
foreach ($Match as $key=>$value) echo "\n$value";
Столкнулся с занимательной проблемой.
Оказывается символ \n воспринимается в регулярных выражениях как переход на новую строчку только если он находится в скобках "\n", а в скобках '\n' он воспринимается как буква 'n'.
Хотя по логике, если мы хотим отобразить точку (или любой другой специальный символ), то пишем "\\." или '\.' Так почему же эта логика не срабатывает для "\\n" или '\n'?
Вот простой пример:
$text =
'test1
test2
';
$find = "[^\n]*\n";
ereg($find, $text, $Match);
foreach ($Match as $key=>$value) echo "\n$value";
unset($Match);
$find = '[^\n]*\n';
ereg($find, $text, $Match);
foreach ($Match as $key=>$value) echo "\n$value";