Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помощь в регулярном выражении! (https://javascript.ru/forum/misc/37270-pomoshh-v-regulyarnom-vyrazhenii.html)

celkabelka 13.04.2013 15:10

Помощь в регулярном выражении!
 
Всем добрый день, не знаю возможно ли это :)

/*
string_1
string_2
string_3
*/

Нужно, чтобы в итоге было:

[c]/*[/c]
[c]string_1[/c]
[c]string_2[/c]
[c]string_3[/c]
[c]*/[/c]

Так сделать могу:
[c]/*
string_1
string_2
string_3
*/[/c]

но хотелось бы, чтобы каждая строка обрабатывалась, возможно?

Есть вариант найти сначала подстроку типа:
/*
...
*/

А потом с ней проработать каждую строку, но я хотел бы узнать возможно ли это сделать в одном выражении и как это будет по производительности.

NoResponse 13.04.2013 16:51

/^(.*)$/m

Ervin 13.04.2013 16:52

var alpha = "/*\nstring_1\nstring_2\nstring_3\n*/";
alpha.replace(/([a-zA-Z_/*0-9]{1,100}(?=\n)?)/g, "[c]$&[/c]");

rgl 13.04.2013 17:00

Цитата:

Сообщение от celkabelka
но я хотел бы узнать возможно ли это сделать в одном выражении

Нет, в одном не возможно, но возможно в двух. Т.е. возможно без циклов.

rgl 13.04.2013 17:38

var s = "str0\nstr1\n/*\nstr2\nstr3\nstr4\n*/\nstr5\nstr6";

s = s.replace( /\/\*[\S\s]*\*\//g, function( ss ) {
  return ss.replace( /(.+)/g, "[c]$1[/c]" );
} );

alert( s );

celkabelka 13.04.2013 17:53

Понял, благодарю всех за помощь!


Часовой пояс GMT +3, время: 20:36.