cari
Rumahpembangunan bahagian belakangTutorial PythonCara menggunakan ungkapan biasa Python untuk pemfaktoran semula kod

Cara menggunakan ungkapan biasa Python untuk pemfaktoran semula kod

Jun 23, 2023 am 09:44 AM
Kemahiran pengaturcaraanpemfaktoran semula kodungkapan biasa python

Dalam pengekodan harian, kita selalunya perlu mengubah suai dan membina semula kod untuk meningkatkan kebolehbacaan dan kebolehselenggaraan kod. Salah satu alat penting ialah ungkapan biasa. Artikel ini akan memperkenalkan beberapa teknik biasa tentang cara menggunakan ungkapan biasa Python untuk pemfaktoran semula kod.

1 Cari dan gantikan

Salah satu fungsi ungkapan biasa yang paling biasa digunakan ialah cari dan ganti. Katakan kita perlu menggantikan semua kenyataan cetakan dalam kod dengan kenyataan log. Kita boleh menggunakan ungkapan biasa berikut untuk mencari:

prints*((.*))

Ungkapan biasa ini boleh memadankan pernyataan cetakan borang(...) dan menangkap kandungan dalam kurungan sebagai subkumpulan. Seterusnya, kita boleh menggunakan modul semula Python untuk melaksanakan operasi penggantian:

import re

pattern = r'prints*((.*))'
replacement = r'logging.info()'

code = 'print("hello, world")'
refactored_code = re.sub(pattern, replacement, code)
print(refactored_code)

Hasil keluarannya ialah:

logging.info("hello, world")

Seperti yang dapat dilihat daripada contoh ini, menggunakan ungkapan biasa boleh mengekod semula dengan mudah struktur kod, yang lebih cekap daripada carian dan penggantian manual.

2. Pisahkan dan gabungkan rentetan

Satu lagi tugas pemfaktoran semula kod biasa ialah membelah dan menggabungkan rentetan. Sebagai contoh, kita perlu menukar rentetan "epal, pisang, oren" kepada senarai ['epal', 'pisang', 'oren']. Kita boleh menggunakan ungkapan biasa berikut untuk operasi pemisahan dan pemadanan:

import re

pattern = r'(w+)'
code = "apple,banana,orange"

result = re.findall(pattern, code)
print(result)

Hasil output ialah:

['apple', 'banana', 'orange']

Ungkapan biasa ini boleh memadankan satu atau lebih aksara ke dalam perkataan, dan dalam Cari semua sedemikian perkataan dalam rentetan dan kembalikan senarai. Begitu juga, kita boleh menggunakan kaedah gabungan Python untuk menggabungkan senarai menjadi rentetan:

import re

pattern = r'(w+)'
code = "apple,banana,orange"

result = re.findall(pattern, code)
refactored_code = ','.join(result)
print(refactored_code)

Hasil output ialah:

apple,banana,orange

Kaedah ini boleh digunakan untuk pemprosesan rentetan yang lebih kompleks, Contohnya, biasa ungkapan sepadan dengan kandungan teg dalam dokumen XML atau HTML dan kemudian memprosesnya lagi.

3. Pengekstrakan dan pembinaan semula blok kod

Untuk beberapa asas kod yang besar, kita mungkin perlu mengekstrak dan membina semula beberapa blok kod. Ini juga boleh dicapai menggunakan ungkapan biasa. Sebagai contoh, kita perlu mengekstrak blok kod yang mengandungi beberapa fungsi dan menyimpannya sebagai fail berasingan. Kita boleh menggunakan ungkapan biasa berikut untuk memadankan blok kod:

import re

pattern = r'def (.+):s+(.*)'
code = '''
def foo():
    print("foo")
    
def bar():
    print("bar")
'''

# 使用正则表达式匹配 def 语句和它的下面的代码块
matches = re.findall(pattern, code, flags=re.DOTALL)

# 将提取出来的代码块进行处理
new_code = "
".join(["def " + match[0] + ":
    " + match[1].replace('
', '
    ') for match in matches])

print(new_code)

Hasil output ialah:

def foo():
    print("foo")
    
def bar():
    print("bar")

Ungkapan biasa ini boleh memadankan fungsi bermula dengan "def xxx():" Definisi, dan menangkap badan fungsi sebagai subkumpulan bersama-sama dengan nama fungsi. Akhir sekali, kita boleh menggabungkan semua definisi fungsi padanan ke dalam blok teks dengan baris baharu.

Ringkasan

Artikel ini memperkenalkan beberapa teknik biasa tentang cara menggunakan ungkapan biasa Python untuk pemfaktoran semula kod, termasuk mencari dan menggantikan, membelah dan menggabungkan rentetan, pengekstrakan blok kod dan pemfaktoran semula, dsb. Ungkapan biasa ialah alat berkuasa yang boleh membantu kami memfaktorkan semula kod dengan lebih cekap dan meningkatkan kebolehselenggaraan dan kebolehbacaan kod. Mahir dalam penggunaan ungkapan biasa akan menjadi salah satu kemahiran yang amat diperlukan setiap pengaturcara Python.

Atas ialah kandungan terperinci Cara menggunakan ungkapan biasa Python untuk pemfaktoran semula kod. 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
Apakah beberapa operasi biasa yang boleh dilakukan pada tatasusunan python?Apakah beberapa operasi biasa yang boleh dilakukan pada tatasusunan python?Apr 26, 2025 am 12:22 AM

PythonArraysSupportVariousoperations: 1) SlicingExtractsSubsets, 2) Menambah/ExtendingAddSelements, 3) InsertingPlaceSelementSatSatSatSpecifics, 4) RemovingDeleteselements, 5) Sorting/ReversingChangesOrder,

Dalam jenis aplikasi yang biasa digunakan oleh numpy?Dalam jenis aplikasi yang biasa digunakan oleh numpy?Apr 26, 2025 am 12:13 AM

NumpyarraysareessentialforapplicationRequiringeficientnumericalcomputationsanddatamanipulation.theyarecrucialindaSascience, machinelearning, fizik, kejuruteraan, danfinanceduetotheirabilitytOHandlelarge-Scaledataefisien.Forexample, infinancialanal

Bilakah anda memilih untuk menggunakan array di atas senarai di Python?Bilakah anda memilih untuk menggunakan array di atas senarai di Python?Apr 26, 2025 am 12:12 AM

UseanArray.arrayoveralistinpythonwhendealingwithhomogeneousdata, criticalcode prestasi, orinterfacingwithccode.1) homogeneousdata: arrayssavemememorywithtypedelements.2)

Adakah semua operasi senarai disokong oleh tatasusunan, dan sebaliknya? Mengapa atau mengapa tidak?Adakah semua operasi senarai disokong oleh tatasusunan, dan sebaliknya? Mengapa atau mengapa tidak?Apr 26, 2025 am 12:05 AM

Tidak, notalllistoperationsaresuportedByArrays, andviceversa.1) arraysdonotsupportdynamicoperationslikeappendorinsertwithoutresizing, whyimpactsperformance.2) listsdonotguaranteeconstantTimeComplexityFordirectacesscesscesscesscesscesscesscesscesscesessd.

Bagaimana anda mengakses elemen dalam senarai python?Bagaimana anda mengakses elemen dalam senarai python?Apr 26, 2025 am 12:03 AM

ToaccesselementsinaPythonlist,useindexing,negativeindexing,slicing,oriteration.1)Indexingstartsat0.2)Negativeindexingaccessesfromtheend.3)Slicingextractsportions.4)Iterationusesforloopsorenumerate.AlwayschecklistlengthtoavoidIndexError.

Bagaimana tatasusunan digunakan dalam pengkomputeran saintifik dengan python?Bagaimana tatasusunan digunakan dalam pengkomputeran saintifik dengan python?Apr 25, 2025 am 12:28 AM

Arraysinpython, terutamanya yang, arecrucialinscientificificputingputingfortheirefficiencyandversatility.1) mereka yang digunakan untuk

Bagaimana anda mengendalikan versi python yang berbeza pada sistem yang sama?Bagaimana anda mengendalikan versi python yang berbeza pada sistem yang sama?Apr 25, 2025 am 12:24 AM

Anda boleh menguruskan versi python yang berbeza dengan menggunakan Pyenv, Venv dan Anaconda. 1) Gunakan pyenv untuk menguruskan pelbagai versi python: Pasang pyenv, tetapkan versi global dan tempatan. 2) Gunakan VENV untuk mewujudkan persekitaran maya untuk mengasingkan kebergantungan projek. 3) Gunakan Anaconda untuk menguruskan versi python dalam projek sains data anda. 4) Simpan sistem python untuk tugas peringkat sistem. Melalui alat dan strategi ini, anda dapat menguruskan versi Python yang berbeza untuk memastikan projek yang lancar.

Apakah beberapa kelebihan menggunakan array numpy melalui array python standard?Apakah beberapa kelebihan menggunakan array numpy melalui array python standard?Apr 25, 2025 am 12:21 AM

Numpyarrayshaveseveraladvantagesoverstanderardpythonarrays: 1) thearemuchfasterduetoc-assedimplementation, 2) thearemorememory-efficient, antyedlargedataSets, and3) theyofferoptimized, vectorizedfuncionsformathhematicalicalicalicialisation

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini