[解決済み] Python でコンパイルされた正規表現オブジェクトのタイプ
2023-07-10 02:37:45
質問
Pythonでコンパイルされた正規表現の型は何ですか?
特に、私は評価したい
isinstance(re.compile(''), ???)
を真とするのは、イントロスペクションのためです。
私が持っていた一つの解決策は、あるグローバルな定数
REGEX_TYPE = type(re.compile(''))
とすることでしたが、あまりエレガントではないようです。
EDITです。 私がこれをしたい理由は、私は文字列のリストとコンパイルされた正規表現オブジェクトを持っているからです。私はリストに対して文字列をマッチさせたいと思います。
- リスト内の各文字列について、文字列が等しいかどうかをチェックします。
- リスト中のそれぞれの正規表現に対して、文字列が与えられたパターンにマッチするかどうかをチェックしようとします。
と、思いついたコードは
for allowed in alloweds:
if isinstance(allowed, basestring) and allowed == input:
ignored = False
break
elif isinstance(allowed, REGEX_TYPE) and allowed.match(input):
ignored = False
break
どのように解決するのですか?
何かの型がうまく指定されていない場合、何も問題はありません。
type
を使って実行時に答えを見つけることは悪いことではありません。
>>> import re
>>> retype = type(re.compile('hello, world'))
>>> isinstance(re.compile('goodbye'), retype)
True
>>> isinstance(12, retype)
False
>>>
実行時に型を発見することで、プライベートな属性にアクセスしたり、将来的に戻り値の型が変更されたりすることを防げます。 を使っても何も不都合はありません。
type
を使用することについては、何も優雅なことではありませんが、型をまったく知りたくないということについては、何か優雅でないことがあるかもしれません。
とはいえ、時間の経過とともに、この質問の文脈は変化してきました。 現代のPythonのバージョンで
の戻り値の型は
re.compile
は現在
re.Pattern
.
何かの型がうまく指定されていない場合にどうするかという一般的な疑問はまだ有効ですが、この特定のケースでは、型が
re.compile(...)
は
が十分に規定されるようになりました。
関連
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] Pythonでオブジェクトが属性を持つかどうかを知る方法
-
[解決済み] オブジェクトの種類を決定しますか?
-
[解決済み] Pythonで型をチェックする標準的な方法は何ですか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] 前月の日時オブジェクトを返す
-
[解決済み] SQLAlchemy - テーブルのリストを取得する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 前月の日時オブジェクトを返す
-
[解決済み] PythonでファイルのMD5チェックサムを計算するには?重複
-
[解決済み] Spyderを仮想環境で動作させるには?
-
[解決済み] dict を txt ファイルに書き、それを読み取る?
-
[解決済み] Django Rest Framework ファイルアップロード
-
[解決済み] 範囲指定された浮動小数点数のランダムな配列を生成します。
-
[解決済み] あるオブジェクトが数であるかどうかを確認する、最もパイソン的な方法は何でしょうか?
-
[解決済み] PySparkでデータフレームのカラムをString型からDouble型に変更する方法は?
-
[解決済み] Pythonの辞書にあるスレッドセーフについて
-
[解決済み] Django filter queryset __in for *every* item in list