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

Pythonで正規表現を使って文字列が指定した文字のみで構成されているか判定する方法

Pythonでは、reモジュールの正規表現機能を利用することで、ある文字列が「あらかじめ定義された文字だけで構成されているかどうか」を簡単にチェックできます。具体的には、許可する文字パターンを正規表現として定義し、対象の文字列がそのパターンに一致するかどうかを検証します。

サンプルコード

以下に、実際の実装例を示します。

import re

def check_string(my_string, regex_pattern):
   if re.search(regex_pattern, my_string):
      print("文字列は定義された文字のみで構成されています")
   else:
      print("文字列には定義されていない文字が含まれています")

regex_pattern = re.compile('^[Python]+$')

my_string_1 = 'Python'
print("対象の文字列:")
print(my_string_1)
check_string(my_string_1, regex_pattern)

my_string_2 = 'PythonInterpreter'
print("\n対象の文字列:")
print(my_string_2)
check_string(my_string_2, regex_pattern)

実行結果

対象の文字列:
Python
文字列は定義された文字のみで構成されています

対象の文字列:
PythonInterpreter
文字列には定義されていない文字が含まれています

コードの解説

  • まず、正規表現を扱うための re モジュールをインポートします。

  • 次に、文字列と正規表現パターンを引数として受け取る関数 check_string を定義します。

  • 関数内では re.search() メソッドを呼び出し、文字列の中にパターンに一致する部分が存在するかどうかを判定します。一致すればTrue、しなければFalseが返されます。

  • 関数の外側では、re.compile() を使って正規表現パターン '^[Python]+$' を事前にコンパイルしています。このパターンは、「P・y・t・h・o・n のいずれかの文字のみで、先頭から末尾まで構成されていること」を意味します(^ は先頭、$ は末尾、+ は1回以上の繰り返しを表します)。

  • 検証対象となる2つの文字列('Python' と 'PythonInterpreter')を定義し、コンソールに表示します。

  • それぞれの文字列を引数として関数を呼び出し、判定結果を出力します。

ポイントまとめ

  • re.compile() でパターンを事前にコンパイルしておくと、同じパターンを繰り返し使う場合に処理が効率化されます。

  • ^$ を組み合わせることで、文字列全体が完全にパターンに一致するかを厳密にチェックできます。

  • この手法は、入力値のバリデーション(英数字のみの確認など)にも応用できます。

  1. 【Python】文字列がすべてユニークな文字で構成されているか判定する方法

    本記事では、与えられた文字列に含まれる文字がすべて一意(ユニーク)であるかどうかを判定するPythonプログラムについて、その解法とアプローチをわかりやすく解説します。 問題の概要 文字列が入力として与えられたとき、その文字列に含まれるすべての文字が重複なく一意であるかどうかを判定します。たとえば「abcde」はすべて異なる文字で構成されているためTrue、「tutorialspoint」のように同じ文字が複数回出現する場合はFalseとなります。 アプローチ この問題は、以下のような手順で効率的に解くことができます。 ブール値の配列を用意する: 各インデックス i が「アルファベット(AS

  2. Pythonで文字列に特定の文字のみが含まれているかを確認する方法

    Pythonでは、文字列が特定の文字だけで構成されているかどうかを簡単にチェックできます。代表的な方法として、セット(set)を使う方法と正規表現(regex)を使う方法の2つがあります。それぞれ具体的なコード例とともに解説します。方法1:セット(set)を使った確認まず、許可したい文字の集合(セット)を宣言します。そして、検証したい文字列から作ったセットが、その許可セットの部分集合になっているかを確認します。例えば、文字列に「1」「2」「3」「4」のみが含まれているかをチェックしたい場合は、次のように書きます。allowed_chars = set(1234) validation_stri