2010-02-09 4 views
0

문제 : 코드 - 태그의 내용 내에서 특정 키워드 (예 : "function")의 스타일을 지정하려고합니다. C- 스타일 주석의 키워드는 제외됩니다. 그 내용. 솔루션 : 나는 C 스타일의 코멘트를 제외시킬 코드 패턴의 innerHTML 문자열이 정규식과 일치한다고 생각합니다.Javascript Regex - C 스타일의 주석을 제외한 모든 것을 캡쳐

어떤 제안이 있습니까?

+0

기다려 ... 당신은 (내부) HTML을 정규식으로 구문 분석하고 싶습니까? 중요/보안에 중대한 영향을 미치는가? –

+1

http://alexgorbatchev.com/wiki/SyntaxHighlighter를보고 어떻게하는지보십시오. – AutomatedTester

답변

1

C 스타일 주석은 중첩 될 수 있으므로 정규식에 적합하지 않습니다. 중첩되지 C 스타일의 코멘트를 일치

간단하다 : (RegexBuddy의 라이브러리에서 가져온)

/\*(?:(?!\*/|/\*).)*+(?:/\*(?:(?!\*/|/\*).)*+\*/(?:(?!\*/|/\*).)*+)*+.*?\*/ 

:

/\*.*?\*/ 

은에서 중첩 결과의 한 단계를 허용. 당신이 더 많은 것을 허락한다면 어떻게되는지 상상해보십시오.

"정규식이 C 스타일 주석 외부에있는 텍스트 블록과 일치 할 수 있습니까?"라는 질문을 이해합니다. - 이것보다 훨씬 복잡합니다. "This is used to start a C comment: /*"과 같은 문자열을 상상해보십시오. 더욱이 이것을 시도하고 싶다면 JavaScript가 지원하지 않는 lookbehind가 필요합니다.

관련 문제