[Moscow.pm] А все таки классный язык Perl.

Akzhan Abdulin akzhan.abdulin на gmail.com
Пт Дек 7 14:31:41 PST 2012


А, вы об этом. Модификатора s нет. В таких случаях надо заменять . на [\s\S]

var s = "fau\nlta\nbtalerance";

var re = /([\s\S]*?)(a\nb)([\s\S]*)/m;

var m = re.exec(s);

console.log(m);


8 декабря 2012 г., 2:14 пользователь Ivan Petrov
<i.petro.77.00 на gmail.com>написал:

> > Опять не понял.
>
> > ➜  Projects  cat 1.js
> > var s = "faulta\nbtalerance";
>
> > var re = /(.*?)(a\nb)(.*)/m;
>
> > var m = re.exec(s);
>
> > console.log(m);
>
> как говорили у нас на родине "авоттех..." оно не работает.
>
> это же не Perl, регулярные выражения совершенно непредсказуемы!
>
> добавляем \n в слово fault и все магически перестает работать:
>
> nb:[~]$ nodejs 1.js
> [ 'ulta\nbtalerance',
>   'ult',
>   'a\nb',
>   'talerance',
>   index: 3,
>   input: 'fa\nulta\nbtalerance' ]
> nb:[~]$ cat 1.js
> var s = "fa\nulta\nbtalerance";
>
> var re = /(.*?)(a\nb)(.*)/m;
>
> var m = re.exec(s);
>
>
> console.log(m);
>
>
> и без /m:
>
> nb:[~]$ cat 1.js
> var s = "fa\nulta\nbtalerance";
>
> var re = /(.*?)(a\nb)(.*)/m;
>
> var m = re.exec(s);
>
>
> console.log(m);
>
> nb:[~]$ vim 1.js
> nb:[~]$ nodejs 1.js
> [ 'ulta\nbtalerance',
>   'ult',
>   'a\nb',
>   'talerance',
>   index: 3,
>   input: 'fa\nulta\nbtalerance' ]
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20121208/41889a39/attachment.html>


Подробная информация о списке рассылки Moscow-pm