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

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

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

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

Q&A

解決済

2回答

1092閲覧

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

ShinoBoo

総合スコア2

Python

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

0グッド

0クリップ

投稿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

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

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

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

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

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

can110

2022/10/13 07:14

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

2022/10/13 07:50

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

回答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

総合スコア38266

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

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

ShinoBoo

2022/10/13 08:17

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

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

総合スコア19771

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

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

ShinoBoo

2022/10/13 07:36

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問