Dalam orkestrasi kontena, kita selalunya perlu menapis, memadankan dan menggantikan beberapa maklumat. Python menyediakan ungkapan biasa, alat berkuasa yang boleh membantu kami menyelesaikan operasi ini. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa Python untuk orkestrasi kontena, termasuk pengetahuan asas ungkapan biasa, cara menggunakan modul semula Python dan beberapa aplikasi ungkapan biasa biasa.
1. Pengetahuan asas tentang ungkapan biasa
Ungkapan Biasa merujuk kepada corak teks yang digunakan untuk menerangkan struktur jenis rentetan. Dalam Python, kita boleh menggunakan modul semula untuk memproses ungkapan biasa. Ungkapan biasa terdiri daripada pelbagai aksara, beberapa daripadanya mempunyai makna istimewa, seperti yang ditunjukkan di bawah:
Padan dengan mana-mana aksara kecuali baris baharu
^ sepadan dengan permulaan rentetan
$ sepadan dengan aksara Tamat rentetan.
Selain aksara khas yang biasa digunakan di atas, terdapat banyak lagi aksara khas boleh digunakan mengikut keperluan.
2. Cara menggunakan modul semula Python
Modul semula Python menyediakan satu siri fungsi untuk menggunakan ungkapan biasa. Antaranya, fungsi yang paling biasa ialah re.findall(corak, rentetan) dan re.sub(corak, repl, rentetan).
fungsi re.findall(corak, rentetan) digunakan untuk mencari semua subrentetan dalam rentetan yang sepadan dengan ungkapan biasa dan mengembalikan senarai. Contohnya, jika kita ingin mencari semua nombor yang berakhir dengan nombor genap dalam rentetan, kita boleh menggunakan kod berikut:
import re text = '123 456 7890 23 45 6' pattern = r'd*[02468]' result = re.findall(pattern, text) print(result)
Hasil output ialah:
['456', '7890', '6']
re.sub(pattern , repl, string) menggunakan fungsi Menggantikan subrentetan yang sepadan dengan ungkapan biasa dalam rentetan dengan rentetan yang ditentukan dan mengembalikan rentetan yang diganti. Sebagai contoh, jika kita ingin menggantikan semua ruang dalam rentetan dengan tanda sempang "-", kita boleh menggunakan kod berikut:
import re text = 'hello world' pattern = r's' repl = '-' result = re.sub(pattern, repl, text) print(result)
Hasil output ialah:
'hello-world'
3. Ungkapan biasa biasa aplikasi
Dalam Docker, nama kontena selalunya bermula dengan "/", seperti "/redis". Kita boleh menggunakan ungkapan biasa berikut untuk mencari:
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)
Hasil output ialah:
['/redis']
Di mana, ungkapan biasa "(?<=GETs)S+" bermaksud sepadan dengan "GET" ( Ambil perhatian bahawa terdapat ruang di hujung rentetan bukan kosong.
Dalam Docker, alamat IP kontena biasanya bermula dengan "172." Kita boleh menggunakan ungkapan biasa berikut untuk mencari:
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)
Hasil output ialah:
['172.17.0.2']
Di mana, ungkapan biasa "d{1,3}.d{1,3}.d { 1,3}.d{1,3}" bermaksud memadankan julat alamat IP.
Dalam Docker, kita selalunya perlu menamakan semula nama kontena. Kita boleh menggunakan ungkapan biasa berikut untuk menggantikan nama bekas:
import re text = 'docker run -d --name redis01 redis' pattern = r'--namesS+' repl = '--name new_redis' result = re.sub(pattern, repl, text) print(result)
Hasil output ialah:
'docker run -d --name new_redis redis'
Antaranya, ungkapan biasa "--namesS+" bermaksud sepadan "--name" (nota Rentetan bukan kosong bermula dengan ruang);
Ringkasan
Ekspresi biasa Python ialah teknologi yang sangat biasa dalam orkestrasi kontena, yang boleh membantu kami menapis, memadankan dan menggantikan beberapa maklumat. Artikel ini memperkenalkan pengetahuan asas ungkapan biasa Python, cara menggunakan modul semula, dan beberapa aplikasi ungkapan biasa biasa. Saya harap ia akan membantu kerja semua orang dalam orkestrasi kontena.
Atas ialah kandungan terperinci Cara menggunakan ungkapan biasa Python untuk orkestrasi kontena. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!