単純なパターンの繰り返しが多いテキストを解析しています。テキストはこのように、遊びのためのスクリプトの形式である:私は現在、キャラクターの音声がその中に改行がある場合を除いて正常に動作パターン([A-Z0-9\s]+)\s*\:?\s*[\r\n](.+)[\r\n]{2}
、(以下の説明を)使用してい次の一致までのすべての文字を一致させる正規表現
SAMPSON
I mean, an we be in choler, we'll draw.
GREGORY
Ay, while you live, draw your neck out o' the collar.
。それが起こると、キャラクターの名前は首尾よくキャプチャされますが、スピーチの最初の行だけがキャプチャされます。
シングルラインモードをオンにすると(.
に改行を含める)、1つの巨大なマッチが作成されます。
(.+)
は、次の文字の名前を見つけてマッチを終了するとどのように停止するのですか?
私は各マッチを個別に反復しています(JavaScript)ので、その名前は次のマッチで利用できるようにする必要があります。
理想的には、パターン全体が繰り返されるまで、すべての文字を一致させることができます。
パターンは次のように説明し
最初のグループは(末尾のコロンと空白のオプション付き)(大文字、数字、および空白を許可する)キャラクターの名前と一致します。
2番目のグループ(キャラクタの発言)は、改行で始まり、任意の文字(問題のある行末や改行を除く)をキャプチャします。
パターンは、空白行の後で終了します。
それにマッチする正規表現。それは単独の行にコロンが続く単一の単語ですか?それは不正確な一致をもたらすでしょうか? – mellamokb
@mellamokbパターンの最後の部分を含めるのを忘れました。パターンの最後の部分は空白行を探します。マッチはキャラクターの名前から始まり(すべての大文字と小文字が区別されます)、発言後の空白行で終わります。 – Nathan
サンプルテキストにコロンがないと思うので、正規表現はそれで動作しません。 –