「」で囲む改行削除No.08264
ピー子 さん 16/08/22 22:10
 
いつもお世話になっております。

「」で囲まれた文字の中に改行がある場合、改行を削除しようと考えています。

例1-----------------------------------------------------------------
「あああああああああああああああああああああああああああああああああああああ
あああああああ。

あああああああああああああああ」
--------------------------------------------------------------------
  ↓
--------------------------------------------------------------------
「あああああああああああああああああああああああああああああああああああああ
あああああああ。あああああああああああああああ」
--------------------------------------------------------------------


例2-----------------------------------------------------------------
「あああああああああああああああああああああああ」あああああああああああああ
ああああああああ。

「あああああああああああああああ」
--------------------------------------------------------------------
  ↓
--------------------------------------------------------------------
「あああああああああああああああああああああああ」あああああああああああああ
ああああああああ。

「あああああああああああああああ」
--------------------------------------------------------------------
例2は改行が句点で囲まれていないため、変更なしです。

自力で例1はクリアしたのですが、例2がうまくいきません。
replaceallfast "「(.*?)\n\n(.*?)」","「\\1\\2」",regular;

ご教授の程よろしくお願いいたします。



[ ]
RE:08264 「」で囲む改行削除No.08265
ピー子 さん 16/08/22 22:12
 
例2は改行が句点で囲まれていないため、変更なしです。⇒×

例2は改行が「」で囲まれていないため、変更なしです。⇒○

ごめんなさい説明間違ってました。。。

[ ]
RE:08265 「」で囲む改行削除No.08270
秀まるお2 さん 16/08/23 16:24
 
 「〜」にヒットさせる正規表現としては、例えば

 「[^」]+」

 って書き方があって、これを使うと、例えば

  「あああ「いいい」

 のような所では「いいい」にしかヒットしなくなります。それをさらに応用し
て、途中の改行を除去する用にアレンジすると、こうなりました。

    replaceallfast
        "(?#maxlines:10)(「[^「\\n]+)(\\n+)([^「]+」)",
         "\\1\\3",
         regular;

 改行が複数散らばってると1回ではうまく除去できないのが欠点ですけども、
とりあえずこれでどうでしょうか。

 ちなみに改行文字も含めてヒットする用の正規表現を使う場合は、

   (?#maxlines:行数)

 って指定が必要になってきます。詳しくはヘルプに書いてあります。

[ ]
RE:08270 「」で囲む改行削除No.08271
秀まるお2 さん 16/08/23 16:37
 
 「あああ

 いいい

 ううう」

 みたいに「〜」の中に改行が複数ちらばって存在してる場合にも対応するには、
replaceallfastをループさせるしか無いかなぁと思います。

    while(1) {
        replaceallfast
            "(?#maxlines:10)(「[^「\\n]+)(\\n+)([^「]+」)",
             "\\1\\3",
             regular;
        if( result <= 0 ) {
            break;
        }
    }

 ってな具合で。

[ ]
RE:08271 「」で囲む改行削除No.08274
ピー子 さん 16/08/24 01:56
 
> 「あああ
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
> ってな具合で。

ありがとうございます。
動作確認致しました。
大変勉強になりました。

[ ]