Rumah > pembangunan bahagian belakang > Tutorial Python > Pengekstrakan Nombor Rentetan Python: Regex vs. isdigit() - Kaedah Mana Yang Terbaik?

Pengekstrakan Nombor Rentetan Python: Regex vs. isdigit() - Kaedah Mana Yang Terbaik?

Mary-Kate Olsen
Lepaskan: 2024-12-25 10:47:39
asal
533 orang telah melayarinya

Python String Number Extraction: Regex vs. isdigit() - Which Method is Best?

Cara Mengekstrak Nombor daripada String dalam Python: Ungkapan Biasa lwn. isdigit()

Apabila berurusan dengan data teks yang mengandungi kedua-dua teks dan nombor, ia boleh diperlukan untuk mengekstrak nilai berangka daripada rentetan. Dua kaedah biasa untuk melaksanakan tugas ini dalam Python ialah ungkapan biasa dan kaedah isdigit().

Pendekatan Ungkapan Biasa

Ekspresi biasa (regex) menawarkan cara yang berkuasa untuk memadankan corak dalam rentetan. Untuk mengekstrak nombor, anda boleh menggunakan corak d, yang sepadan dengan satu atau lebih digit. Pertimbangkan contoh:

import re

line = "hello 12 hi 89"
numbers = re.findall(r'\d+', line)
print(numbers)
# Output: [12, 89]
Salin selepas log masuk

regeks ini sepadan dengan jujukan digit "12" dan "89" dan mengembalikannya sebagai senarai. Untuk memadankan hanya nombor yang dihadkan oleh sempadan perkataan (seperti ruang, noktah atau koma), anda boleh menggunakan corak b:

numbers = re.findall(r'\b\d+\b', line)
print(numbers)
# Output: [12, 89]
Salin selepas log masuk

Pendekatan Kaedah isdigit()

The isdigit () kaedah menyediakan cara alternatif untuk mengekstrak nombor daripada rentetan. Kaedah ini mengembalikan Benar untuk aksara yang merupakan digit dan Palsu sebaliknya. Untuk menggunakannya, anda boleh lelaran melalui rentetan dan semak setiap aksara:

line = "hello 12 hi 89"
numbers = []

for char in line:
    if char.isdigit():
        numbers.append(int(char))
print(numbers)
# Output: [12, 89]
Salin selepas log masuk

Dalam contoh ini, kaedah melelaran melalui setiap aksara dalam rentetan, menyemak sama ada ia adalah digit menggunakan isdigit(), dan tambahkannya pada senarai nombor jika ada.

Pertimbangan Prestasi

Secara amnya, menggunakan ungkapan biasa adalah lebih cekap untuk mengekstrak nombor daripada rentetan daripada menggunakan kaedah isdigit(). Ungkapan biasa boleh memadankan corak kompleks dengan cepat, manakala isdigit() memerlukan lelaran melalui keseluruhan rentetan.

Nota untuk Integer Negatif

Jika anda perlu mengekstrak integer negatif juga, pendekatan regex menyediakan penyelesaian yang lebih mudah. Hanya gunakan r'-d ' untuk memadankan digit negatif. Walau bagaimanapun, menggunakan isdigit() memerlukan logik yang lebih kompleks untuk mengendalikan tanda negatif.

Atas ialah kandungan terperinci Pengekstrakan Nombor Rentetan Python: Regex vs. isdigit() - Kaedah Mana Yang Terbaik?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan