Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk mengekstrak teks campur tangan menggunakan ungkapan biasa?

Bagaimana untuk mengekstrak teks campur tangan menggunakan ungkapan biasa?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-21 20:05:29687semak imbas

How to Extract Intervening Text Using Regular Expressions?

Mencari Teks Intervensi dengan Ungkapan Biasa

Apabila memproses data teks, selalunya perlu untuk mengekstrak maklumat khusus berdasarkan corak yang telah ditetapkan. Satu alat yang berkuasa untuk tugas ini ialah ungkapan biasa, urutan aksara yang digunakan untuk memadankan rentetan teks mengikut peraturan yang ditetapkan. Dalam kes ini, kami menyasarkan untuk memadankan teks antara dua rentetan berbeza menggunakan ungkapan biasa.

Masalah:

Pertimbangkan teks berikut:

Part 1. Part 2. Part 3 then more text

Matlamat kami adalah untuk mencari rentetan "Bahagian 1" dan "Bahagian 3" dan mendapatkan semula semua di antaranya, iaitu ". Bahagian 2. ".

Penyelesaian:

Menggunakan Python 2x, kami boleh menggunakan modul semula dan memanfaatkan ungkapan biasa. Satu pendekatan ialah menggunakan fungsi carian semula:

import re

s = 'Part 1. Part 2. Part 3 then more text'
match = re.search(r'Part 1\.(.*?)Part 3', s)
if match:
    print(match.group(1))

Kod ini mencari corak "Bahagian 1" diikuti oleh mana-mana aksara (diwakili oleh ".*?") dan berakhir dengan "Bahagian 3 ". Bahagian yang dipadankan, yang mengandungi teks perantaraan, disimpan dalam match.group(1) dan dicetak.

Pendekatan alternatif melibatkan penggunaan re.findall jika terdapat berbilang kejadian bagi corak yang ditentukan:

matches = re.findall(r'Part 1(.*?)Part 3', s)
for match in matches:
    print(match)

Kod ini mendapatkan semula semua segmen yang sepadan antara "Bahagian 1" dan "Bahagian 3" dan mencetak setiap satu. Kedua-dua kaedah berkesan menggunakan ungkapan biasa untuk mengekstrak teks yang dikehendaki antara rentetan yang ditentukan.

Atas ialah kandungan terperinci Bagaimana untuk mengekstrak teks campur tangan menggunakan ungkapan biasa?. 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