Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでテキストを検索して置換する方法は?


問題

文字列内のテキストパターンを検索して置換したい。

非常に単純なリテラルパターンがある場合は、str.replace()メソッドを使用するのが最適なソリューションです。

def sample():
yield 'Is'
yield 'USA'
yield 'Colder'
yield 'Than'
yield 'Canada?'

text = ' '.join(sample())
print(f"Output \n {text}")

出力

Is USA Colder Than Canada?

まず、テキストを検索する方法を見てみましょう。

# search for exact text
print(f"Output \n {text == 'USA'}")

出力

False

str.find()、str.endswith()、str.startswith()などの基本的な文字列メソッドを使用してテキストを検索できます。

# text start with
print(f"Output \n {text.startswith('Is')}")

出力

True
# text ends with
print(f"Output \n {text.startswith('Is')}")

出力

True
# search text with find
print(f"Output \n {text.find('USA')}")
でテキストを検索

出力

3

検索する入力テキストがより複雑な場合は、正規表現とreモジュールを使用できます。

# Let us create a date in string format
date1 = '22/10/2020'
# Let us check if the text has more than 1 digit.
# \d+ - match one or more digits
import re
if re.match(r'\d+/\d+/\d+', date1):
print('yes')
else:
print('no')
yes

さて、テキストの置き換えに戻ります。置き換えるテキストと文字列が単純な場合は、str.replace()を使用します。

出力

print(f"Output \n {text.replace('USA', 'Australia')}")

出力

Is Australia Colder Than Canada?

検索と置換が複雑なパターンがある場合は、reモジュールのsub()メソッドを活用できます。

sub()の最初の引数は一致するパターンであり、2番目の引数は置換パターンです。

次の例では、日付フィールドをdd / mm / yyyyで検索し、それらを-yyyy-dd-mmの形式で置き換えます。\ 3などのバックスラッシュ付きの数字は、パターン内のキャプチャグループ番号を示します

import re
sentence = 'Date is 22/11/2020. Tommorow is 23/11/2020.'
# sentence
replaced_text = re.sub(r'(\d+)/(\d+)/(\d+)', r'\3-\1-\2', sentence)
print(f"Output \n {replaced_text}")

出力

Date is 2020-22-11. Tommorow is 2020-23-11.

もう1つの方法は、最初に式をコンパイルしてパフォーマンスを向上させることです。

出力

pattern = re.compile(r'(\d+)/(\d+)/(\d+)')
replaced_pattern = pattern.sub(r'\3-\1-\2', sentence)
print(f"Output \n {replaced_pattern}")

出力

Date is 2020-22-11. Tommorow is 2020-23-11.

re.subn()は、テキストの置換とともに行われた置換の数を示します。

出力

output, count = pattern.subn(r'\3-\1-\2', sentence)
print(f"Output \n {output}")

出力

Date is 2020-22-11. Tommorow is 2020-23-11.

出力

print(f"Output \n {count}")

出力

2

  1. Windows10のメモ帳でテキストを検索して置換する方法

    メモ帳で単語やフレーズを検索して置き換える必要がある場合は、このステップバイステップガイドを使用して、メモ帳でテキストを見つけて置き換えることができます。 Windows 10の場合。このガイドを使用すると、複数の単語やフレーズを見つけて置き換えることができます。 無料のメモ帳の代替手段として、これを簡単に実行できるものがありますが、組み込みのメモ帳アプリで実行したい場合は、次の方法で実行できます。 メモ帳でテキストを検索する方法 メモ帳でテキストを検索するには、次の手順に従います- メモ帳を開いて、テキスト全体を貼り付けます。 編集をクリックします トップメニューバーのオプション。 検

  2. ChromeとFirefoxでテキストを検索して置き換える方法

    ブラウザは、その名前が示すように、Webを閲覧するためのものです。テキストエディタとして使用するためのものではありません。そのため、ブラウザで「テキストの検索と置換」などのテキスト編集機能を見つけることはめったにありません。 ただし、ブログの投稿を書いたり、コメントを入力したり、メールを作成したり、フォーラムをモデレートしたりして、何度も表示されるいくつかの単語を置き換えたい場合があります。ここで、「テキストの検索と置換」機能が役立ちます。検索と置換機能をGoogleChromeとFirefoxに追加する方法を見てみましょう。 GoogleChromeの検索と置換 検索と置換は、Googl