Rumah >pembangunan bahagian belakang >Tutorial Python >Regex atau `isdigit()`? Mana yang Terbaik untuk Mengekstrak Nombor daripada Strings dalam Python?

Regex atau `isdigit()`? Mana yang Terbaik untuk Mengekstrak Nombor daripada Strings dalam Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-20 04:00:10333semak imbas

Regex or `isdigit()`? Which is Best for Extracting Numbers from Strings in Python?

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!

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