tkre プログラム仕様
tkreモジュール
- 概要:
正規表現操作を簡略化するユーティリティ関数とクラスを提供します。
- 詳細説明:
Python標準のreモジュールとshlexモジュールをラップし、 一般的な正規表現パターンマッチング、検索、置換、分割などの 操作を容易に行えるように設計されています。 グローバル変数`last_res`を用いて、直前のマッチ結果を保持する機能も提供します。
- tklib.tkre.DelLastSpace(str)[ソース]
概要: 文字列の末尾にある空白文字を削除します。
- 詳細説明:
Pythonのstr.rstrip()メソッドを呼び出し、文字列の末尾から空白文字を除去します。
- tklib.tkre.DelQuote(str)[ソース]
概要: 文字列の先頭と末尾にある引用符(シングルクォートまたはダブルクォート)を削除します。
- 詳細説明:
文字列がシングルクォートまたはダブルクォートで両端を囲まれている場合に限り、 その引用符を削除します。内側の引用符は削除されません。 文字列の前後の空白は`strip()`で除去されます。
- tklib.tkre.DelSpace(str)[ソース]
概要: 文字列の先頭と末尾にある空白文字を削除します。
- 詳細説明:
Pythonのstr.strip()メソッドを呼び出し、文字列の両端から空白文字を除去します。
- tklib.tkre.DelTopSpace(str)[ソース]
概要: 文字列の先頭にある空白文字を削除します。
- 詳細説明:
Pythonのstr.lstrip()メソッドを呼び出し、文字列の先頭から空白文字を除去します。
- tklib.tkre.FindAll(reg, str, flag='')[ソース]
概要: 正規表現にマッチする全てのグループを検索し、リストとして返します。
- 詳細説明:
re.findall関数を実行し、その結果からマッチしたグループを抽出することを試みます。 抽出されたグループはリストとして返されます。 この関数の結果はグローバル変数`last_res`にも保存されます。
- tklib.tkre.FindIter(reg, str, flag='')[ソース]
概要: 正規表現にマッチする全ての非重複部分文字列またはグループをイテレータとして検索します。
- 詳細説明:
re.finditer関数をラップし、正規表現`reg`にマッチする全ての箇所を検索します。 各マッチについて、マッチオブジェクトから抽出されたグループのリストを作成し、 それらをさらにリストにまとめて返します。 この関数の結果はグローバル変数`last_res`にも保存されます。
- tklib.tkre.GetReg_flag(flag='')[ソース]
概要: 指定されたフラグ文字列からreモジュール用の正規表現フラグを生成します。
- 詳細説明:
入力された文字列に含まれる文字に基づいて、re.IGNORECASE (i), re.DOTALL (s), re.MULTILINE (m), re.ASCII (a), re.LOCALE (l), re.VERBOSE (x) のいずれかのフラグをビットORで結合します。
- tklib.tkre.Match(reg, str, flag='')[ソース]
概要: 文字列の先頭から正規表現のマッチを試みます。
- 詳細説明:
re.match関数をラップし、文字列`str`の先頭で正規表現`reg`にマッチするかを試みます。 マッチした場合、マッチオブジェクトから抽出されたグループのリストを返します。 マッチしない場合は空のリストを返します。 この関数の結果はグローバル変数`last_res`にも保存されます。
- tklib.tkre.Search(reg, str, flag='')[ソース]
概要: 文字列の任意の場所で正規表現の最初のマッチを検索します。
- 詳細説明:
re.search関数をラップし、文字列`str`内で正規表現`reg`に最初にマッチする箇所を検索します。 マッチした場合、マッチオブジェクトから抽出されたグループのリストを返します。 マッチしない場合はNoneを返します。 この関数の結果はグローバル変数`last_res`にも保存されます。
- tklib.tkre.Split(reg, str)[ソース]
概要: 正規表現パターンに基づいて文字列を分割します。
- 詳細説明:
re.split関数をラップし、指定された正規表現`reg`にマッチする区切り文字で 文字列`str`を分割します。
- tklib.tkre.Sub(reg, target, str, n=0)[ソース]
概要: 正規表現にマッチする部分文字列を置換します。
- 詳細説明:
re.sub関数をラップし、文字列`str`内で正規表現`reg`にマッチする部分を `target`で置換します。置換回数を`n`で指定できます。
- tklib.tkre.SubN(reg, target, str, n=0)[ソース]
概要: 正規表現にマッチする部分文字列を置換し、置換回数を返します。
- 詳細説明:
re.subn関数をラップし、文字列`str`内で正規表現`reg`にマッチする部分を `target`で置換します。置換後の文字列と、実際に置換が行われた回数のタプルを返します。 置換回数を`n`で指定できます。
- tklib.tkre.get_result()[ソース]
概要: 直前の正規表現操作の結果を返します。
- 詳細説明:
Search, Match, FindAll, `FindIter`などの関数によって設定された グローバル変数`last_res`の値を返します。
- 戻り値:
直前の正規表現操作の結果。結果の形式は操作によって異なります。
- 戻り値の型:
list or None
- tklib.tkre.main()[ソース]
概要: モジュール内の関数の動作例を示すメインエントリポイント。
- 詳細説明:
この関数は、DelQuote、`FindIter`などのモジュール内の主要な関数の 使用方法を示すためのサンプルコードを含んでいます。 スクリプトが直接実行された場合に呼び出されます。
- tklib.tkre.shSplit(reg, str)[ソース]
概要: shlexモジュールを使用して文字列をシェル風に分割します。
- 詳細説明:
shlex.split関数をラップし、シェルの構文規則に従って文字列をトークンに分割します。 この実装では、最初の引数`reg`が分割対象の文字列、 2番目の引数`str`が`shlex.split`の`comments`引数として渡されます。
- class tklib.tkre.tkRegExp(**args)[ソース]
ベースクラス:
tkObject概要: 正規表現操作を提供するtklibのラッパークラス。
- 詳細説明:
tklibのtkObjectを継承し、正規表現による文字列検索機能を提供します。 特に`FindIter`メソッドを通じて、モジュールレベルの`FindIter`関数を オブジェクト指向のインターフェースで利用できるようにします。