Cara menggunakan ungkapan biasa Python untuk orkestrasi kontena

PHPz
Lepaskan: 2023-06-22 09:16:52
asal
1228 orang telah melayarinya

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)
Salin selepas log masuk

Hasil output ialah:

['456', '7890', '6']
Salin selepas log masuk

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)
Salin selepas log masuk

Hasil output ialah:

'hello-world'
Salin selepas log masuk

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)
Salin selepas log masuk

Hasil output ialah:

['/redis']
Salin selepas log masuk

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)
Salin selepas log masuk

Hasil output ialah:

['172.17.0.2']
Salin selepas log masuk

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)
Salin selepas log masuk

Hasil output ialah:

'docker run -d --name new_redis redis'
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!