文字列が英数字で終わっているかどうかを判定するPythonプログラム
文字列が英数字(アルファベットまたは数字)で終わっているかどうかを確認したい場合は、正規表現を使用するのが便利です。この記事では、正規表現を使って文字列の末尾をチェックするメソッドを定義し、判定結果を出力する方法を紹介します。
ポイントとなる正規表現
今回使用するパターンは [a-zA-z0-9]$ です。[a-zA-z0-9] は半角英字と数字のいずれか1文字にマッチし、$ は文字列の末尾を表します。この2つを組み合わせることで、「文字列の最後が英数字であるか」を簡単に判定できます。
サンプルコード
以下に具体的な実装例を示します。
import re
regex_expression = '[a-zA-z0-9]$'
def check_string(my_string):
if(re.search(regex_expression, my_string)):
print("文字列は英数字で終わっています")
else:
print("文字列は英数字で終わっていません")
my_string_1 = "Python@"
print("対象の文字列 :")
print(my_string_1)
check_string(my_string_1)
my_string_2 = "Python1245"
print("\n対象の文字列 :")
print(my_string_2)
check_string(my_string_2)実行結果
対象の文字列 : Python@ 文字列は英数字で終わっていません 対象の文字列 : Python1245 文字列は英数字で終わっています
処理の流れの解説
まず、正規表現を扱うための
reモジュールをインポートします。判定に使用する正規表現パターンの文字列を定義します。
check_stringという名前の関数を定義し、引数としてチェック対象の文字列を受け取ります。関数内では
re.search()メソッドを呼び出し、文字列の末尾が英数字で終わっているかどうかを確認します。条件が成立した場合とそうでない場合それぞれに対して、異なるメッセージを出力します。
関数の外側でテスト用の文字列を定義し、コンソールに表示します。
定義した文字列を引数として渡して関数を呼び出し、判定結果をコンソールに出力します。
補足
なお、@ のような記号で終わる文字列はパターンにマッチしないため、「英数字で終わっていない」と判定されます。より広い範囲の英数字(Unicode文字を含む)を判定したい場合は、[a-zA-z0-9] の代わりに \w$ を使う方法もあります。用途に応じて正規表現パターンを使い分けるとよいでしょう。
-
Pythonで文字列からn番目の文字を削除するプログラムの書き方
はじめにこの記事では、以下の問題に対する解決方法を解説します。問題文 − 与えられた文字列から、指定したインデックス(i番目)の文字を削除し、その結果を表示します。Pythonの文字列では、インデックスは必ず0から始まるという点に注意してください。例えば、「Tutorialspoint」という文字列の場合、各文字のインデックスは以下のように対応しています。T u t o r i a l s p o i n t 0 1 2 3 4 5 6 7 8 9 10 11 12 13それでは、この問題を解決するためのPythonスクリプトを見ていきましょう。実装例def remove(string
-
Pythonで文字列からn番目の文字を削除する方法【サンプルコード付き】
Pythonにおいて、文字列は文字の配列として扱われます。そのため、先頭の文字のインデックスは「0」から始まり、各文字の位置(インデックス)を簡単に取得できます。この性質を利用すると、指定したn番目の文字だけを削除することが可能です。 基本的な考え方はシンプルです。削除したい文字のインデックス番号を受け取り、元の文字列を次の2つの部分文字列に分割します。 n番目のインデックスの文字より前の部分 n番目のインデックスの文字より後の部分 その後、この2つの部分文字列を連結すれば、n番目の文字が取り除かれた新しい文字列が完成します。 実行例 入力: python 削除するインデックス: 3 出