コンテナオーケストレーションでは、多くの場合、一部の情報をフィルタリング、照合、および置換する必要があります。 Python は、これらの操作を完了するのに役立つ強力なツールである正規表現を提供します。この記事では、正規表現の基本知識、Python re モジュールの使用方法、一般的な正規表現アプリケーションなど、コンテナ オーケストレーションで Python 正規表現を使用する方法を紹介します。
1. 正規表現の基礎知識
正規表現 (正規表現) とは、ある種の文字列の構造を記述するために使用されるテキスト パターンを指します。 Python では、 re モジュールを使用して正規表現を処理できます。正規表現はさまざまな文字で構成されており、その一部は次のように特別な意味を持っています:
. 改行以外の任意の文字に一致します
^ 文字列の先頭に一致します
$ 文字に一致します 文字列の末尾
上記の一般的に使用される特殊文字に加えて、必要に応じて使用できる特殊文字が他にもたくさんあります。
2. Python re モジュールの使用方法
Python の re モジュールには、正規表現を使用するための一連の関数が用意されています。その中で、最も一般的な関数は re.findall(pattern, string) と re.sub(pattern, repl, string) です。
re.findall(pattern, string) 関数は、正規表現に一致する文字列内のすべての部分文字列を検索し、リストを返すために使用されます。たとえば、文字列内で偶数で終わるすべての数値を検索したい場合は、次のコードを使用できます:
import re text = '123 456 7890 23 45 6' pattern = r'd*[02468]' result = re.findall(pattern, text) print(result)
出力結果は次のようになります:
['456', '7890', '6']
re.sub(pattern , repl, string) 関数は、文字列内の正規表現に一致する部分文字列を指定された文字列に置換し、置換された文字列を返します。たとえば、文字列内のすべてのスペースをハイフン「-」に置き換える場合は、次のコードを使用できます。
import re text = 'hello world' pattern = r's' repl = '-' result = re.sub(pattern, repl, text) print(result)
出力結果は次のようになります。
'hello-world'
3. 一般的な正規表現アプリケーション
Docker では、コンテナ名は「/redis」など、「/」で始まることがよくあります。次の正規表現を使用して検索できます。
import re text = '172.17.0.2 - - [15/May/2019:09:58:20 +0800] "GET /redis HTTP/1.1" 200 9876' pattern = r'(?<=GETs)S+' result = re.findall(pattern, text) print(result)
出力結果は次のとおりです。
['/redis']
このうち、正規表現「(?<=GETs)S」は「GET」と一致することを意味します。 (その後にスペースがあることに注意してください。) で始まる空でない文字列。
Docker では、コンテナ IP アドレスは通常「172」で始まります。次の正規表現を使用して検索できます:
import re text = '172.17.0.2 - - [15/May/2019:09:58:20 +0800] "GET /redis HTTP/1.1" 200 9876' pattern = r'd{1,3}.d{1,3}.d{1,3}.d{1,3}' result = re.findall(pattern, text) print(result)
出力結果は次のとおりです:
['172.17.0.2']
その中には、正規表現 "d{1,3}.d{1,3}. d{ 1,3}.d{1,3}" は、IP アドレスの範囲と一致することを意味します。
Docker では、コンテナ名の変更が必要になることがよくあります。次の正規表現を使用してコンテナ名を置き換えることができます:
import re text = 'docker run -d --name redis01 redis' pattern = r'--namesS+' repl = '--name new_redis' result = re.sub(pattern, repl, text) print(result)
出力結果は次のとおりです:
'docker run -d --name new_redis redis'
このうち、正規表現「--namesS」は「--name」と一致することを意味します。 (スペースで始まる空でない文字列に注意してください); repl は置換される文字列を表します。
概要
Python 正規表現は、コンテナ オーケストレーションにおける非常に一般的なテクノロジであり、一部の情報のフィルタリング、照合、置換に役立ちます。この記事では、Python 正規表現の基礎知識、re モジュールの使用方法、およびいくつかの一般的な正規表現アプリケーションを紹介します。コンテナ オーケストレーションにおける皆さんの作業に役立つことを願っています。
以上がコンテナ オーケストレーションに Python 正規表現を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。