【Python】文字列の先頭と末尾が同じ文字かどうかを正規表現で確認する方法
文字列が同じ文字で始まり、かつ同じ文字で終わっているかどうかを確認したい場合、正規表現を活用すると簡単に実現できます。Pythonの re モジュールが提供する search 関数を使ったメソッドを定義すれば、文字列の先頭と末尾が同一の文字であるかどうかを効率的に判定できます。
サンプルコード
以下に具体的な実装例を示します。
import re
regex_expression = r'^[a-z]$|^([a-z]).*\1$'
def check_string(my_string):
if(re.search(regex_expression, my_string)):
print("The given string starts and ends with the same character")
else:
print("The given string doesnot start and end with the same character")
my_string = "abcbabda"
print("The string is:")
print(my_string)
check_string(my_string)
実行結果
The string is: abcbabda The given string starts and ends with the same character
コードの解説
まず、正規表現を扱うための
reモジュールをインポートします。正規表現パターン
r'^[a-z]$|^([a-z]).*\1$'を定義します。このパターンは、「1文字だけの小文字アルファベット」、または「先頭と末尾が同じ小文字アルファベットで構成される文字列」にマッチします。\1は後方参照と呼ばれる仕組みで、グループ化された先頭の文字と末尾の文字が一致しているかどうかを判定します。文字列を引数として受け取る
check_stringメソッドを定義します。メソッド内では、
search関数に対象の文字列と正規表現パターンを渡して呼び出します。先頭と末尾の文字が一致している場合は該当するメッセージがコンソールに出力され、一致しない場合はその旨のメッセージが表示されます。
メソッドの外側で検証対象となる文字列を定義し、コンソールに表示します。
定義した文字列を引数として
check_stringメソッドを呼び出します。判定結果がコンソールに出力されます。
-
文字列が空かどうかをチェックするPythonプログラム
この記事では、与えられた文字列が空であるかどうかを判定するための解決策とアプローチについて解説します。 問題文 文字列が入力として与えられたとき、その文字列が空(空文字列)であるかどうかを判定する必要があります。 Pythonの文字列はイミュータブル(変更不可)な性質を持っているため、文字列に対して何らかの操作を行う際には注意して扱う必要があります。 ここでは、上記の問題を解決するための2つのアプローチを紹介します。 len()メソッドを使用する方法 等価演算子(==)を使用する方法 アプローチ1:len()メソッドを使う方法 len()関数で文字列の長さを取得し、その長さが0であれば空文
-
Pythonで文字列が指定した接尾辞(サフィックス)で終わっているかどうかを確認する方法
endswith()メソッドを使う方法Pythonでは、文字列クラスに用意されている endswith() メソッドを使うことで、文字列が特定の接尾辞(サフィックス)で終わっているかどうかを簡単に確認できます。このメソッドは、検索したい接尾辞の文字列を引数として受け取り、文字列オブジェクトに対して呼び出します。以下のように使用します。string = C:/Users/TutorialsPoint1/~.py print(string.endswith(.py))実行結果:Trueこの例では、ファイルパスの文字列が .py という拡張子で終わっているため、True が返されます。もし終わってい