Rumah >pembangunan bahagian belakang >Tutorial Python >Cara menggunakan ungkapan biasa Python untuk orkestrasi kontena

Cara menggunakan ungkapan biasa Python untuk orkestrasi kontena

PHPz
PHPzasal
2023-06-22 09:16:521393semak imbas

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.

  • Memadankan aksara sebelumnya sifar atau lebih kali
  • Memadankan aksara sebelumnya satu atau lebih kali
    Padankan dengan aksara sebelumnya sifar atau satu kali
    [] Padan dengan mana-mana aksara yang terkandung dalam kurungan segi empat sama
    |. Memadankan mana-mana satu daripada dua atau lebih ungkapan

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

  1. Cari nama kontena

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.

  1. Cari alamat IP bekas

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.

  1. Ganti nama kontena

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn