Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.04.2013, 15:10
Интересующийся
Отправить личное сообщение для celkabelka Посмотреть профиль Найти все сообщения от celkabelka
 
Регистрация: 16.05.2012
Сообщений: 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]

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

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

А потом с ней проработать каждую строку, но я хотел бы узнать возможно ли это сделать в одном выражении и как это будет по производительности.
Ответить с цитированием
  #2 (permalink)  
Старый 13.04.2013, 16:51
Аватар для NoResponse
Профессор
Отправить личное сообщение для NoResponse Посмотреть профиль Найти все сообщения от NoResponse
 
Регистрация: 17.06.2010
Сообщений: 152

/^(.*)$/m
Ответить с цитированием
  #3 (permalink)  
Старый 13.04.2013, 16:52
Аспирант
Отправить личное сообщение для Ervin Посмотреть профиль Найти все сообщения от Ervin
 
Регистрация: 19.03.2013
Сообщений: 84

var alpha = "/*\nstring_1\nstring_2\nstring_3\n*/";
alpha.replace(/([a-zA-Z_/*0-9]{1,100}(?=\n)?)/g, "[c]$&[/c]");
Ответить с цитированием
  #4 (permalink)  
Старый 13.04.2013, 17:00
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Сообщение от celkabelka
но я хотел бы узнать возможно ли это сделать в одном выражении
Нет, в одном не возможно, но возможно в двух. Т.е. возможно без циклов.
Ответить с цитированием
  #5 (permalink)  
Старый 13.04.2013, 17:38
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

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 );
Ответить с цитированием
  #6 (permalink)  
Старый 13.04.2013, 17:53
Интересующийся
Отправить личное сообщение для celkabelka Посмотреть профиль Найти все сообщения от celkabelka
 
Регистрация: 16.05.2012
Сообщений: 10

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
позиция подмасок в в регулярном выражении edison Общие вопросы Javascript 20 09.04.2013 01:44
Способ реализации позитивного просмотра в перед в регулярном выражении kichSman Общие вопросы Javascript 10 11.04.2012 21:19
Как в регулярном выражении использовать переменную? avaVusal Общие вопросы Javascript 7 23.08.2011 15:07
количество повторений в регулярном выражении mrWong Общие вопросы Javascript 2 10.02.2010 12:57
Проблема с кавычкой в регулярном выражении bandolero Общие вопросы Javascript 5 31.01.2010 11:37