Python で正規表現を使用する場合は、re モジュールを使用します。
今回は、数値/半角英字などのチェック処理を、正規表現を使って実装します。
コピペで簡単に使えるようになっています。
スポンサーリンク
正規表現で文字の種類をチェックする
まずは、正規表現を使う為、re モジュールをインポートする。
数値チェック
def isInteger(value):
"""
整数チェック
:param value: チェック対象の文字列
:rtype: チェック対象文字列が、全て数値の場合 True
"""
return re.match(r"^\d+$", value) is not None
小数チェック
def isDecimal(value):
"""
小数チェック
:param value: チェック対象の文字列
:rtype: チェック対象文字列が、整数または小数の場合 True True
"""
return re.match(r"^[+-]?[0-9]*[.]?[0-9]+$", value) is not None
英字チェック
def isAlpha(value):
"""
半角英字チェック
:param value: チェック対象の文字列
:rtype: チェック対象文字列が、全て半角英字の場合 True
"""
return re.match(r"^[a-z]+$", value) is not None
英数字チェック
def isAlphaNumeric(value):
"""
半角英数字チェック
:param value: チェック対象の文字列
:rtype: チェック対象文字列が、全て半角英数字の場合 True
"""
return re.match(r"^\w+$", value) is not None
半角文字チェック
def isHalf(value):
"""
半角文字チェック
:param value: チェック対象の文字列
:rtype: チェック対象文字列が、全て半角文字の場合 True (半角カナは含まない)
"""
return re.match(r"^[\x20-\x7E]+$", value) is not None
半角カナチェック
def isHalfKana(value):
"""
半角カナチェック
:param value: チェック対象の文字列
:rtype: チェック対象文字列が、全て半角カナの場合 True
"""
return re.match(r"^[ヲ-゚]+$", value) is not None
全角文字チェック
def isFull(value):
"""
全角文字チェック
:param value: チェック対象の文字列
:rtype: チェック対象文字列が、全て全角文字の場合 True
"""
return re.match(r"^[^\x01-\x7E]+$", value) is not None
スポンサーリンク
正規表現のパターン
正規表現で使える特殊なメタ文字を集めました。
メタ文字 | 説明 |
---|---|
. | 任意の一文字 |
^ | 文字列の先頭 |
$ | 文字列の末尾 |
* | 0回以上の繰り返し |
+ | 1回以上の繰り返し |
? | 0回または1回 |
{m} | m回の繰り返し |
{m,n} | m〜n回の繰り返し |
[] | 集合 |
| | 和集合(または) a又bにマッチする場合、a|b |
() | グループ化 |
\d | 任意の数字 [0-9]) |
\D | 任意の数字以外 [^0-9] |
\s | 任意の空白文字 [\t\n\r\f\v] |
\S | 任意の空白文字以外 [^\t\n\r\f\v] |
\w | 任意の英数字 [A-Za-z0-9_] |
\W | 任意の英数字以外 [^A-Za-z0-9_] |
おまけ
(私が)よく使う、正規表現パターン。。。
正規表現パターン | 説明 |
---|---|
[ぁ-ん] | ひらがなだけ |
[ァ-ヴ] | カタカナだけ |
[^\x01-\x7E] | 全角 (半角以外 |
今回紹介したチェック関数を、簡単に使えるように、クラス化したものは、以下のソースになります。
class ValideteUtil:
@staticmethod
def isInteger(value):
"""
整数チェック
:param value: チェック対象の文字列
:rtype: チェック対象文字列が、全て数値の場合 True
"""
return re.match(r"^\d+$", value) is not None
@staticmethod
def isDecimal(value):
'''
小数チェック
:param value: チェック対象の文字列
:rtype: チェック対象文字列が、整数または小数の場合 True True
'''
return re.match(r"^[+-]?[0-9]*[.]?[0-9]+$", value) is not None
@staticmethod
def isAlpha(value):
"""
半角英字チェック
:param value: チェック対象の文字列
:rtype: チェック対象文字列が、全て半角英字の場合 True
"""
return re.match(r"^[a-z]+$", value) is not None
@staticmethod
def isAlphaNumeric(value):
"""
半角英数字チェック
:param value: チェック対象の文字列
:rtype: チェック対象文字列が、全て半角英数字の場合 True
"""
return re.match(r"^\w+$", value) is not None
@staticmethod
def isHalf(value):
"""
半角文字チェック
:param value: チェック対象の文字列
:rtype: チェック対象文字列が、全て半角文字の場合 True (半角カナは含まない)
"""
return re.match(r"^[\x20-\x7E]+$", value) is not None
@staticmethod
def isHalfKana(value):
"""
半角カナチェック
:param value: チェック対象の文字列
:rtype: チェック対象文字列が、全て半角カナの場合 True
"""
return re.match(r"^[ヲ-゚]+$", value) is not None
@staticmethod
def isFull(value):
"""
全角文字チェック
:param value: チェック対象の文字列
:rtype: チェック対象文字列が、全て全角文字の場合 True
"""
return re.match(r"^[^\x01-\x7E]+$", value) is not None
関連記事
■ MacにPython3をインストールする! (サクッとインストールしたい人向け)
Mac環境に、Python3を簡単にインストールする方法を紹介しています。
■ Python3入門! 基礎をおさらい (変数/演算子/条件分岐/繰り返し)
1つの記事に、基本文法をまとめて書いているので、時間が空いて忘れてしまった場合でも、一気に復習出来るようになっています。よければ見てください。
■ Flaskでソースの変更を検知して、Webアプリを自動リロードする[Python Tips]
Flaskの開発で、ソースを更新したら、自動的にWebアプリをリロードする方法です。
■ Flaskで REST API開発する! 直ぐに実行できるサンプルコードで解説 【Python Tips】
Pythonの軽量Webフレームワークである、FlaskでREST APIを作るまでの流れを、紹介します。
■ Flask-RESTful を使って、REST APIを作る【Python Tips】
Flaskと、Flask-RESTfulを使って、REST APIを作ります。
Flask-RESTfulを使うと、オブジェクト思考な感じで、REST APIが作れます。
■ Pythonで小数点の四捨五入/切り捨て/切り上げを行う
Pythonのdecimalモジュール
を使って、小数点の丸めを行う方法です。
■ pipコマンドまとめ! 忘れても思い出せばいい! 【Python TIPS】
よく使うpip
コマンドをまとめました。
参考になる記事をありがとうございます…!!!🙇
返信削除正しくは、Halfでしょうか?
Harfに深い意味があるのか、誤字なのかだけ気になりました。
(細か過ぎる指摘で、誠に申し訳ありません…。🙇💦)
記事を読んでくださり、ありがとうございます。
削除また、ご指摘についてもありがとうございます。単純なミスでお恥ずかしいです (--)
記事を修正させていただきました。