2016-08-09 5 views
-2

Fountain(スクリーンライティング)マークアップファイルを解析し、Prism.jsの構文強調表示パターンを書き込もうとしています。RegEx:特定のブロックの後に2つの改行を一致させる

私は、私は非常にうまく最初の行にマッチし、この式を引っ張っ泉資源から

\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) 

私は多くのことを経験してきましたが、2つの改行まで、オプションの括弧の行を含めた全体のテキストブロックを、マッチするパターンを見つけるように見えることはできません。

正しいパターンを見つけるのに手伝ってもらえますか? Regexesは私の内なる子供を殺す。

更新日: これは私が思ったよりも簡単でした。 JavaScriptの見た目の欠如はまだ私にいくつかの痛みを与えていますが、それはまったく別の話です。

([ \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 - ブロックの先頭の1新ラインは必見

(([ \t]*([A-Za-z0-9 ])+[ \t]?)(\n){1}){1}ですアルファベットの数字とスペースの行。ラインは、最後にタブとスペースでラップすることができます。最後に新しい行が必要です。

(([ \t]*(\()*([A-Za-z0-9 ])*(\))*[ \t]?){1}(\n){1})? - 英数字とスペースの1行です。それは、タブとブラケットでラップすることができます。スペースも最後に含めることができます。最後に新しい行が必要です。

([ \t]*([A-Za-z0-9.,-_ ])+[ \t]?){1}(\n){1} - 1行の英数字です。コンマ、ピリオド、ダッシュ、アンダースコアも含めることができます。このブロックは、タブで囲み、最後にスペースを入れることもできます。最後に新しい行が必要です。

これは動作するはずです。私はいくつかの要件が不足している場合は、単にコメントして、私は可能な限り助けようとします。

乾杯、 ムスタファ

+0

ありがとうございますが、これは2行のブロックにのみ一致します。 これは多少実際には機能しました: ([^ <> az \ s \/\ n] [^ <> az:!\?\ n] * [^ <> az \(!\? (\ n \ n) – Tritonal

+0

ちょっとトリトン - それは私にとっては2行と3行にマッチしていました。あなたが投稿した正規表現を並べ替えることができませんでした。他の人がそれを手伝ってくれるかもしれません。私の正規表現をテストする? – MustafaG

関連する問題