🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Google ドキュメント

Google ドキュメントは、Google社が提供している文書作成ツール。Googleアカウントがあれば無料で利用できます。ブラウザ上で文書作成を行い、複数人での同時編集がで可能。スマホやタブレットでも利用できる他、オフラインでの編集もできます。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

置換

置換とは文字列中の特定の文字に対して、別の文字列に置き換えることを指します。

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

2回答

6731閲覧

[正規表現]連続した改行は1つに、単一の改行は削除

seiitirour2

総合スコア1

Google ドキュメント

Google ドキュメントは、Google社が提供している文書作成ツール。Googleアカウントがあれば無料で利用できます。ブラウザ上で文書作成を行い、複数人での同時編集がで可能。スマホやタブレットでも利用できる他、オフラインでの編集もできます。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

置換

置換とは文字列中の特定の文字に対して、別の文字列に置き換えることを指します。

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

4クリップ

投稿2021/01/20 09:32

前提・実現したいこと

Googleドキュメントで、連続した改行は1つに、単一の改行は削除

Googleドキュメントの文章をまとめております。
ただ、文章の途中で改行を繰り返しており、可読性が悪いことから修正を行っております。
正規表現を使ってこれらを修正したいと思っております。

現状の文章

VBAは 「Officeがあれば使える」 「環境構築が簡単」 「他のPCでも動く」 そのため 「環境ではなくプログラミングに専念できる」 「会社内での流用がしやすい」 みんなで使え、 みんなで改善し、 作り上げていける

完成形

VBAは「Officeがあれば使える」「環境構築が簡単」「他のPCでも動く」 そのため「環境ではなくプログラミングに専念できる」「会社内での流用がしやすい」 みんなで使え、みんなで改善し、作り上げていける

現状

手順として

  1. 単一の改行の削除
  2. 連続した改行を1つにする

が良いかと思っております。(2つを同時にできたらなお良いのですが、、、)

ステップ2の「連続した改行を1つにする」は調べると
\n(?=\n)
にて可能だとわかりました。

しかし、手順1の「単一の改行の削除」の方法を見つけることができず、色々試したのですができませんでした。

###試したこと1
連続した改行を\n{2,}にて指定
それを[^\n{2,}]\nとすることで連続した改行以外の改行。つまり、単一の改行を指定
しかし、改行の前の文字も指定されてしまうので()で囲んでキャプチャーし、$1にて改行以外の文字を貼り付け
という方法が良いと思い行いましたが、実現しませんでした。

Googleドキュメントの置換で、正規表現にチェックを入れ、

検索
([^\n{2,}])\n

次に変更
$1
ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

1回では無理ですね。
先読みが使えるようなので後読みも使えるでしょうから、単一の改行は「前後が改行で無い改行」で、(?<!\n)\n(?!\n)
複数改行は、\n{2,}でOKです。

投稿2021/01/20 10:04

otn

総合スコア85886

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

seiitirour2

2021/01/20 10:43

正規表現の勉強になりました! 正規表現をまだまだ使いこなせておりませんので、今後も勉強していきたいと思いました 回答ありがとうございました
guest

0

・\n\n を <<<連続改行>>> に置換
・\n を削除
・<<<連続改行>>> を \n に置換

という意識低い 3ステップではダメですか。

投稿2021/01/20 09:47

68user

総合スコア2022

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

seiitirour2

2021/01/20 10:40

なるほど! 正規表現にこだわって、自分の技量でも可能な方法を模索できておりませんでした! 正規表現での回答はしばらく使わなければ僕は忘れてしまいますが、このやり方は正規表現を忘れても、非対応でも使えるので結果、最も汎用性が高いかと思いました 回答下さりありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問