2016-08-09 7 views
-2

분수 (스크린 스크립트) 마크 업 파일을 구문 분석하고 Prism.js의 구문 강조 패턴을 작성하려고합니다.RegEx : 특정 블록 다음에 두 줄 바꿈을 적용하십시오.

나는 이런 식으로 뭔가 일치해야 분수 자원에서

\n 
CHARACTER\n 
(possible parenthetical line)\n 
Dialogue, dialogue blah blah.\n 
\n 

나는 아주 멋지게 첫 번째 줄에 일치하는이 표현을 뽑아 (줄 바꿈은 명확성을 위해 포함).

(\n)([ \t]*[^<>a-z\s\/\n][^<>a-z:!\?\n]*[^<>a-z\(!\?:,\n\.][ \t]?)\n{1}(?!\n) 

나는 많은 것들을 실험을했지만 두 줄 바꿈까지 선택 괄호 라인을 포함한 전체 텍스트 블록을 일치합니다 패턴을 찾을 수 없습니다.

올바른 패턴을 찾는 데 도움이 될만한 사람이 있습니까? Regexes 내 안의 자식을 죽일.

업데이트 : 이것은 생각보다 쉽습니다. 자바 스크립트에서 보이는 숨김의 부족은 여전히 ​​나에게 고통을주고 있지만 그것은 완전히 다른 이야기이다.

([ \t]*[^<>a-z\s\/\n][^<>a-z:!\?\n]*[^<>a-z(!\?:,\n\.][ \t]?)\n(.*(\n))?.*(\n\n) 
+3

* 사람이 올바른 패턴을 찾기 위해 좀 도와 주시겠습니까? * 당신은 빨리 [regex101]에서 스스로를 구축 할 수 있습니다 (http://regex101.com). –

답변

0

이 시도 :

((\n){1}(([ \t]*([A-Za-z0-9 ])+[ \t]?)(\n){1}){1}(([ \t]*(\()*([A-Za-z0-9 ])*(\))*[ \t]?){1}(\n){1})?([ \t]*([A-Za-z0-9.,-_ ])+[ \t]?){1}(\n){1}){1} 

위의 코드의 아래 틈 :

(\n){1}-1 새로운 라인 블록의 시작 부분은 반드시에게

(([ \t]*([A-Za-z0-9 ])+[ \t]?)(\n){1}){1}입니다 - 하나 영문자와 공백이있는 행. 선은 탭과 공백으로 끝낼 수 있습니다. 마지막에 새로운 라인이 필수적입니다.

(([ \t]*(\()*([A-Za-z0-9 ])*(\))*[ \t]?){1}(\n){1})? - 영문자와 공백이 한 줄로 표시됩니다. 탭과 브래킷으로 감쌀 수 있습니다. 끝 부분에 공백을 넣을 수도 있습니다. 마지막에 새로운 라인이 필수적입니다.

([ \t]*([A-Za-z0-9.,-_ ])+[ \t]?){1}(\n){1} - 한 줄은 영숫자입니다. 쉼표, 마침표, 대시 및 언더 스코어가 포함될 수도 있습니다. 이 블록은 끝 부분에 공백이있는 탭으로 싸여있을 수도 있습니다. 마지막에 새로운 라인이 필수적입니다.

이렇게하면됩니다. 몇 가지 요구 사항이 누락 된 경우 의견을 보내 주시면 가능하면 도와 드리겠습니다.

건배, 무스타파

+0

감사합니다. 단 두 줄짜리 블록과 만 일치합니다. 실제로 다소 효과가있었습니다. ([^ t] * [^ <> az \ s \/\ n] [^ <> az :! \? \ n] * [^ <> az \ (! \? : \ n \ n]. \ n (. * (\ n))?. * (\ n \ n) – Tritonal

+0

안녕하세요 트리톤 - 이상한 일입니다. 그냥 동일한 블록. 내가 게시 한 정규식을 정렬 할 수 없습니다. 아마도 다른 사람이 도울 수 있습니다. 내가 게시 한 사람을 도울 수 있습니다. 위의 질문에 게시 한 방식과 똑같은 형식으로 DId 형식을 지정합니다. 내 정규식 테스트? – MustafaG