Jadi saya sedang membaca teks dan saya perlu mengganti banyak CID (karakter yang tidak dapat dibaca ketika saya mengikisnya). Saya perlu mengganti setiap "cid:###" dengan karakter yang benar. Masalah yang saat ini saya hadapi adalah bahwa beberapa CID dibungkus dalam <s></s> dan tidak ada spasi antara <s>(cid:131)</s> dan kata berikutnya.

Jadi, ketika saya menggunakan replace, itu tidak berhasil ketika saya mencoba mengganti <s>(cid:131)</s> ke . Ketika saya mencoba mengganti cid:131 dengan , saya mendapatkan <s>▪</s>. Saya mencoba untuk menyingkirkan <s></s> untuk kasus khusus ini (<s></s> ditemukan di tempat lain dalam dokumen dan saya tidak ingin menggantinya).

Tidak mengubah apa pun:

csv_of_table = csv_of_table.replace('<s>(cid:131)</s>', '▪', regex=True)

Hanya mengubah bagian dengan cid:131:

csv_of_table = csv_of_table.replace('cid:131', '▪', regex=True)
3
Jacques Thibodeau 27 Februari 2020, 21:23

1 menjawab

Jawaban Terbaik

Anda dapat menggunakan ? quantifier untuk menandakan bahwa suatu grup dapat muncul 0 atau beberapa kali.

csv_of_table = csv_of_table.replace("(<s>\()?cid:\d+(\)<\/s>)?", "▪", regex = True)
1
Ben Pap 27 Februari 2020, 19:16