Дела такие: делаю подсветку кода для какого-то языка (это неважно), всё работает, но кроме одной ситуации, когда строка имеет вид:
Code
/* ' Комментарий */ 'и строка ';
После обработки получаем:
Code
<span class="comments">/* <span class="strings">' Комментарий */</span> '</span>и строка ';
А должно быть:
Code
<span class="comments">/* ' Комментарий */</span><span class="strings">'и строка '</span>;
Сам обработчик имеет вид (проблемный кусок): в data находится содержимое подсвечиваемого кода
Code
data = data.replace(/('[\s\S]*?')/gim,'<span class="strings">$1</span>');
data = data.replace(/(\/\*[\s\S]*?\*\/)/gim,'<span class="comments">$1</span>');
Вобщем класс comments (между /**/) - зелёный цвет, а strings (между ' ') - синий.
Пробовал писать так для определения strings:
Code
data = data.replace(/('(\*\/){0}[\s\S]*?')/gim,'<span class="strings">$1</span>');
Т.е. с (\*\/){0} указал что знаков */ быть не должно внутри....но не работает...в чём может быть проблема? Как исправить? А то после такой ошибочки все теги перепутываются и вообще ужасно. Надеюсь на помощь от профи и гуру этого дела =) Спасибо.