2016-02-15 3 views

ответ

3

Использование (\n|$):

> re:run("foobar", "(\n|$)"). 
{match,[{6,0},{6,0}]} 
> re:run("foo\nbar", "(\n|$)"). 
{match,[{3,1},{3,1}]} 

То есть, есть два варианта: либо совпадают с символом новой строки или конец строки.

+0

\ n не нужно экранировать (\\ n)? –

+0

Он работает в любом случае. С одной обратной косой чертой '\ n' превращается в литеральную новую строку в регулярном выражении, которая, в свою очередь, соответствует новой строке строки. Но '\ n' также является специальным шаблоном регулярного выражения, который соответствует символам новой строки, поэтому запись' \\ n' в вашем регулярном выражении будет достигать того же. – legoscia