Регулярка для многострочного комментария
Помогите сделать регулярку для многострочного комментария...
Пока сделал так <style type='text/css'> span { color: green; } </style> <pre id='test'> AMCL ;Авторы;Мобильный клиент;;[ 10/09/2014 16:27 ] N ; * Включить установки мобильного клиента * #define ABC 1 n d CLR^ASYS() i i=0 w /cup(y,1),std d j krt s y=y+1 q /* s a=Locate(abc) */ /// йцукенгшщзхъёфывап /* ролджэячсмитьбюЙЦУКЕНГШЩЗХЪЁФЫВАПРОЛДЖЭЯЧСМИТЬБЮ */ /* йцукенгшщзхъёфывап d CLR^ASYS ролджэячсмитьбюЙЦУКЕНГШЩЗХЪЁФЫВАПРОЛДЖЭЯЧСМИТЬБЮ */ w /ed(2) j des ABCDq set x=10 s y=1 s o=##class(user.tmp).%New() /* s x=1 s n=0 */ s:$d(@%zg@($g(%zn,0),%zz)) @%zz=@%zg@($g(%zn,0),%zz) s y=@glb@(10) s i="" /* d ad */ w $j,$i,$zzu /* s a=$Locate(abc) */ s f=$$Fld^ASYS w $$Cent^zfunc("",80) </pre> <script type='text/javascript'> var o=document.getElementById('test'); var txt=o.innerHTML; txt=txt.replace(/(\/\*[^\*\/]*\*\/)/g,'<span>$1</span>') o.innerHTML=txt </script> Но это не сработает если внутри комментария будут символы * или /... :( |
Правда все это осложнится применением в парсере одного дельфийского компонента...
Но это уже вообще наши проблемы. Пока просто есть интерес в просто JS... |
ksa,
<style type='text/css'> span { color: green; } </style> <pre id='test'> AMCL ;Авторы;Мобильный клиент;;[ 10/09/2014 16:27 ] N ; * Включить установки мобильного клиента * #define ABC 1 n d CLR^ASYS() i i=0 w /cup(y,1),std d j krt s y=y+1 q /* s a=Locate(abc) */ /// йцукенгшщзхъёфывап /* ролджэячсмитьбюЙЦУКЕНГШЩЗХЪЁФЫВАПРОЛДЖЭЯЧСМИТЬБЮ */ /* йцукенгшщзхъёфывап d CLR^ASYS ролджэячсмитьбюЙЦУКЕНГШЩЗХЪЁФЫВАПРОЛДЖЭЯЧСМИТЬБЮ */ w /ed(2) j des ABCDq set x=10 s y=1 s o=##class(user.tmp).%New() /* s x=1 s n=0 */ s:$d(@%zg@($g(%zn,0),%zz)) @%zz=@%zg@($g(%zn,0),%zz) s y=@glb@(10) s i="" /* ***** d ad */ w $j,$i,$zzu /* s a=$Locate(abc) */ s f=$$Fld^ASYS w $$Cent^zfunc("",80) </pre> <script type='text/javascript'> var o=document.getElementById('test'); var txt=o.innerHTML; txt=txt.replace(/(\/\*[\s\S]*?\*\/)/g,'<span>$1</span>') o.innerHTML=txt </script> |
|
рони, с этого и начали... Но там видать "жадный" поиск стоит... Выделяет все от первого /* до последнего */ :(
|
Цитата:
Я пробовал вот как /(\/\*[\s\S]*\*\/ Т.е. без ? знака... Даже предположить не мог, что он тут к месту, да еще и будет определяющим! :blink: * ведь и так предполагает от 0 до любого количества... И ? там вроде как избыточен... Как словами будет читаться твоя регулярка? |
ksa,
начать с комбинации символов/* затем найти все символы включая переводы строк, если таковые будут или нет, до первой комбинации */ |
ksa,
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 20:53. |