Использование Regex для перехвата текста до первого появления новой строки - PullRequest
1 голос
/ 10 февраля 2020

Предположим, у меня есть следующий текст:

== Sejarah == \n Berkas:Gunung Kawi Rice Terrace Tampaksiring 1.jpg|kiri|jmpl|200px|Sawah di sekitar Candi Tebing Gunung Kawi, Tampaksiring, Bali. \n  \n  \n \n Jepang menduduki Bali selama Perang Dunia II dan saat itu seorang perwira militer bernama I Gusti Ngurah Rai membentuk pasukan Bali 'pejuang kemerdekaan'. Berkas:Bali Labeled.png|jmpl|225px|Peta topografi Pulau Bali \n \n === Daftar kabupaten dan kota di Bali == 

И я хочу заменить все данные из Berkas: и до первого появления \ n, что означает:

Berkas:Gunung Kawi Rice Terrace Tampaksiring 1.jpg|kiri|jmpl|200px|Sawah di sekitar Candi Tebing Gunung Kawi, Tampaksiring, Bali. \n
Berkas:Bali Labeled.png|jmpl|225px|Peta topografi Pulau Bali \n

I попытался использовать регулярное выражение df['Body'] = df['Body'].str.replace('Berkas:[\s\S]*?\n','',regex=True) безуспешно. Как мне сказать регулярному выражению, что \ n должен быть найден первым? Что я делаю не так?!

Ответы [ 2 ]

0 голосов
/ 10 февраля 2020
import re
text =  "== Sejarah == \n Berkas:Gunung Kawi Rice Terrace Tampaksiring 1.jpg|kiri|jmpl|200px|Sawah di sekitar Candi Tebing Gunung Kawi, Tampaksiring, Bali. \n  \n  \n \n Jepang menduduki Bali selama Perang Dunia II dan saat itu seorang perwira militer bernama I Gusti Ngurah Rai membentuk pasukan Bali 'pejuang kemerdekaan'. Berkas:Bali Labeled.png|jmpl|225px|Peta topografi Pulau Bali \n \n === Daftar kabupaten dan kota di Bali == "
pattern = "Berkas.*\n" 
## list of data from Berkas
Berkas_list = re.findall(pattern, text)
for data in Berkas_list:
    print(data)

Выход:

Berkas:Gunung Kawi Rice Terrace Tampaksiring 1.jpg|kiri|jmpl|200px|Sawah di sekitar Candi Tebing Gunung Kawi, Tampaksiring, Bali. 

Berkas:Bali Labeled.png|jmpl|225px|Peta topografi Pulau Bali
0 голосов
/ 10 февраля 2020

Следующее регулярное выражение работает у меня частично. Единственная проблема заключается в том, что он также возвращает дополнительные \

Berkas:[\s\S]*?[\\\n]

Вывод:

Беркас: рисовая терраса Gunung Kawi Tampaksiring 1.jpg | kiri | jmpl | 200px | Sawah di sekitar Candi Tebing Gunung Kawi, Tampaksiring, Bali. \

Berkas: Bali Labeled.png | jmpl | 225px | Peta topografi Pulau Bali \

Вывод для этого: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...