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

PythonでRegExモジュールを使用してパターンと文字列を照合する方法


はじめに

RegExモジュールは、正規表現の略です。あなたがすでにプログラミングに取り組んでいるなら、あなたはすでにこの用語に何度か出くわしたでしょう。正規表現を使用して検索と置換を行い、さまざまなテキストエディタ、検索エンジン、ワードプロセッサなどで使用されます。

言い換えれば、それはあなたが探している特定のパターンに一致するのに役立ちます。

この良い例は、コラージュWebサイトで、大学のメールのみを使用でき、他の拡張機能は使用できない方法です。

はじめに

正規表現モジュールはPython内にパッケージ化されています。個別にダウンロードしてインストールする必要はありません。

その内容へのアクセスを開始するには、最初にモジュールをインポートする必要があります。 RegExモジュールをインポートするには、

を使用します。
import re

さまざまな機能の調査

RegExモジュールには多くの機能が付属しており、それぞれの違いを理解して理解することが不可欠です。

以下に、Pythonプロジェクトでの作業を開始するときに最も確実に使用する重要な関数のいくつかを示します。

re.compile(pattern, flags) #Compiles the pattern to be matched
re.search(pattern, string, flags) #Searches through the string for exact match
re.match(pattern, string, flags) #Checks if there is a match between pattern and string
re.split(pattern, string, max, flag) #Splits the string based on the pattern provided
re.findall(pattern, string, flag) #Prints all the matches found using the pattern
re.finditer(pattern, string, flags) #Returns the string as an iterable object
re.sub(pattern, repl, string, count) #Replaces the string with the pattern
re.subn(pattern, repl, string, count) #Does the same thing as re.sub but returns it in a tuple(string and count)
re.escape(pattern) #Escapes all characters other than ascii characters

re.compileおよびre.match関数

「Helloworld」という文字列を見てみましょう。ここで、上記の文字列が「Hello world!調子はどうですか?」

これを行うには、re.compile関数とre.match関数を使用します。

x = re.compile(“Hello world”)
y = x.match(“Hello world! How are things going?”)
if (y):
   print("Strings match")
else:
   print("Strings do not match")

出力

Strings match

なぜコンパイル関数を使用せずにこれを行うことができないのか疑問に思っているなら、あなたは正しいです!コンパイル機能を使用せずにこれを行うことができます。

x = re.match(“Hello world”,"Hello world! How are things going?")
if (y):
   print("Strings match")
else:
   print("Strings do not match")

出力

String match

re.split関数

x = re.split("\W+","Hello,World")
print(x)
x = re.split("(\W+)","Hello,World
print(x)

出力

['Hello', 'World']
['Hello', ',', 'World']

上記の例では、「\ W +」は基本的に左から分割を開始することを意味し、+記号は最後まで前進し続けることを意味します。ケース2のように角かっこで覆われている場合は、カンマのように句読点も分割して追加します。

re.subおよびre.subn関数

x = re.sub(r"there","World","Hello there. Python is fun.")
print(x)

x = re.subn(r"there","World","Hello there. Python is fun. Hello there")
print(x)

出力

Hello World. Python is fun.
('Hello World. Python is fun. Hello World', 2)

上記の例では、re.subは「there」という単語が存在するかどうかを確認し、「world」に置き換えます。

subn関数はまったく同じことを行いますが、文字列の代わりにタプルを返し、実行された置換の総数も追加します。

実際の例

RegExモジュールを使用するための実際のアプリケーション/例の1つは、パスワードを検証することです。

import re
matching_sequence = r"[0−9]"
while(True):
   x = input("Enter your password : ")
   r = re.search(matching_sequence,x)
   if (r and len(x)>6):
      print(x + " is a valid password")
   else:
      print(x + " is not a valid password. Password MUST be atleast 7 characters with atleast 1 number")
   input("Press Enter key to exit ")

プログラムは、有効なパスワード(7文字以上で少なくとも1つの数字)を入力したかどうかを確認します。

結論

Pythonに存在するRegExモジュールの基本と、Pythonに存在するさまざまなさまざまな関数をすべて学習しました。

RegExモジュールには、さらに多くの機能と用途があります。興味がある場合は、https://docs.python.org/3/library/re.htmlにある公式ドキュメントから詳細を読むことができます。


  1. PythonとMatplotlibを使用して行の終わりに注釈を付ける方法は?

    PythonとMatplotlibを使用して行の終わりに注釈を付けるには、次の手順を実行できます- 図のサイズを設定し、サブプロット間およびサブプロットの周囲のパディングを調整します。 変数、行を初期化します 、行数データを取得します。 長方形の表形式のデータでPandasデータフレームを取得します。 cumsum(累積合計)を計算します データフレームの。 plot()を使用してデータフレームをプロットします メソッド。 行を繰り返す および名前 行の終わりに注釈を付けます。 annotate()を使用する 列の名前、xy座標、線の色、サイズなどを使用したメソッド 図に凡例を配

  2. Pythonのopenpyxlモジュールを使用したExcelファイルの読み取りと書き込み

    はじめに openpyxl は、Excel 2010xlsx / xlsm / xltx/xltmファイルを読み取り/書き込みするためのPythonライブラリです。 PythonからネイティブにOfficeOpenXML形式を読み書きするための既存のライブラリがないことから生まれました。 操作に使用するExcelファイルはワークブックと呼ばれ、最小で1枚、最大で数十枚のシートが含まれています。 1枚のシートは、1から始まる行とAから始まる列で構成されます。 openpxylライブラリを使用すると、シートやデータの追加、操作、さらにはデータの削除など、さまざまな機能を実行できます。