Pengeluaran Nombor daripada Rentetan dalam Python
Mengekstrak nombor daripada rentetan boleh dicapai menggunakan sama ada ungkapan biasa atau kaedah isdigit(). Mari kita bandingkan pendekatan untuk menentukan yang mana lebih sesuai untuk tujuan tersebut.
Ekspresi Biasa
Ekspresi biasa menawarkan alat yang berkuasa untuk memadankan corak dalam rentetan. Untuk mengekstrak nombor, anda boleh menggunakan ungkapan biasa berikut:
r'\d+'
Ungkapan ini sepadan dengan rentetan yang mengandungi satu atau lebih digit perpuluhan. Sebagai contoh, pertimbangkan rentetan "hello 23 hi 33". Kod berikut akan menggunakan ungkapan biasa untuk mengekstrak nombor:
import re line = "hello 23 hi 33" result = re.findall(r'\d+', line) print(result) # [23, 33]
Kaedah isdigit()
Kaedah isdigit() ialah pendekatan yang lebih mudah untuk menguji sama ada aksara ialah digit perpuluhan. Walau bagaimanapun, ia tidak memberikan keupayaan untuk mengekstrak nombor secara keseluruhan. Untuk menggunakan isdigit(), anda perlu mengulangi aksara rentetan mengikut aksara:
line = "hello 23 hi 33" result = [] for char in line: if char.isdigit(): result.append(int(char)) print(result) # [2, 3, 3]
Perbandingan
Akhirnya, pilihan antara ungkapan biasa dan isdigit () kaedah bergantung pada kes penggunaan tertentu. Ungkapan biasa memberikan lebih fleksibiliti untuk padanan dan pengekstrakan corak yang kompleks. Mereka juga menyokong ciri seperti sempadan perkataan (b) untuk memadankan nombor yang dikelilingi oleh ruang putih.
Untuk pengekstrakan nombor ringkas daripada rentetan, kaedah isdigit() mungkin mencukupi. Walau bagaimanapun, untuk kes yang lebih kompleks atau jika mengekstrak nombor secara keseluruhan diperlukan, ungkapan biasa menawarkan penyelesaian yang lebih komprehensif.
Atas ialah kandungan terperinci Regex atau `isdigit()`? Mana yang Terbaik untuk Mengekstrak Nombor daripada Strings dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!