質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
86.12%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

解決済

Python 不要な空白・改行を削除したい

ShinoBoo
ShinoBoo

総合スコア2

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

2回答

0グッド

0クリップ

310閲覧

投稿2022/10/13 06:52

編集2022/10/13 07:49

前提

Pythonにて
変数に入れたテキストの不要な空白・改行を削除したいです。

※変数内の文字は、BeautifulSoupで取得したWEBページのテキスト情報になります。

実現したいこと

■変数内のテキスト

取得するページの情報により、変数内に入るテキスト(空白の改行数)が異なります

パターン1

・AAA ・BBB ・CCC ・DDD ・EEE

パターン2

(1)FFF (2)GGG (3)HHH ※III

パターン3

JJJ KKK LLL MMM NNN OOO

以下のようにしたいです

■処理後のテキスト
・AAA
・BBB
・CCC
・DDD
・EEE

該当のソースコード

Python

1Hoge = '・AAA…' 2Hoge.replace(' ','').strip ()

試したこと

.strip ()
にて上下の無駄な改行は削除できましたが、
そもそも文字の間には適応しない。

.replace
では、必要な改行も削除されてしまう。

補足情報(FW/ツールのバージョンなど)

Windows10
visual studio code

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

can110

2022/10/13 07:14

提示テキストでの文字「.」は実際に「.」が含まれているということでしょうか? また、提示テキスト内には空白文字が含まれていないようですが、それも取り除きたいということでしょうか? 対象となる変数内のテキストと欲しい結果のテキストを、Pythonコード内でより正確に記載し提示すると回答得られやすくなると思います。
ShinoBoo

2022/10/13 07:50

ご質問ありがとうございます。 また、記入例の不備、正確に記載できておらず申し訳ありませんでした。 記載内容を正確に書き直させていただきました。

回答2

0

ベストアンサー

最初に改行でリストに分割して、取得対象の行のみ抽出して最後に改行で連結してもよいでしょう。

Python

1s = """ 2・AAA 3・BBB 4・CCC 5 6 7・DDD 8 9 10 11・EEE 12""" 13 14lines = [] 15for line in s.split('\n'): 16 line = line.strip() # 必要に応じ空白の除去など 17 if line: 18 lines.append(line) 19 20ret = '\n'.join(lines) 21print(ret) 22""" 23・AAA 24・BBB 25・CCC 26・DDD 27・EEE 28"""

投稿2022/10/13 08:01

can110

総合スコア36203

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

ShinoBoo

2022/10/13 08:17

早々にご教授いただき誠にありがとうございました。 for文で削除していくのですね。 また、質問内容の書き方についても大変参考になりました。 ありがとうございました。

0

python

1import re 2 3text = ''' 4 5・AAA 6・BBB 7・CCC 8 9 10・DDD 11 12 13 14・EEE 15 16'''.strip() 17 18print(re.sub(r'\n{2,}', '\n', text))

投稿2022/10/13 07:06

編集2022/10/13 08:08
melian

総合スコア16213

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

ShinoBoo

2022/10/13 07:36

ご回答いただき誠にありがとうございました。 改行数が異なるケースがありましたので、追記させていただきました。 ご回答いただいたコード大変参考になりました。 ありがとうございます。

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。