在多个匹配的单词后断开一行 - python

时间:2017-07-26 08:19:42

标签: python regex python-3.x

我有一句话: Dane osobowe po zmianie (dopisane): Surname1 Name1 (RYSZARD, EUGENIA) Zam. 99-100 Muczyn (Geod) 6A, Płeć: K, PESEL: 99945104321 Jednostki Rejestrowe osoby (w gminie): 0001.G16 0002.G56 Surname2 Name2 (ANDRZEJ, AGNIESZKA) Zam. 99-100 Muczyn (Geod) 4A, Płeć: K Jednostki Rejestrowe osoby (w gminie): 0001.G16 0001.G07 0001.G43 Surname1 Name1 Name2 (ANDRZEJ, AGNIESZKA) Zam. 99-100 MUCZYN (Geod) 4A, Płeć: M Jednostki Rejestrowe osoby (w gminie): 0001.G16

我想以某种模式分成多行:

Dane osobowe po zmianie (dopisane): Surname1 Name1 (RYSZARD, EUGENIA) Zam. 99-100 Muczyn (Geod) 6A, Płeć: K, PESEL: 99945104321

Jednostki Rejestrowe osoby (w gminie): 0001.G16 0002.G56

Surname2 Name2 (ANDRZEJ, AGNIESZKA) Zam. 99-100 Muczyn (Geod) 4A, Płeć: K

Jednostki Rejestrowe osoby (w gminie): 0001.G16 0001.G07 0001.G43

Surname1 Name1 Name2 (ANDRZEJ, AGNIESZKA) Zam. 99-100 MUCZYN (Geod) 4A, Płeć: M

Jednostki Rejestrowe osoby (w gminie): 0001.G16

我有一个代码:

for i in range(0, len(data)): data[i] = data[i].replace(' Jednostki', '\nJednostki')

data我有如上所述的单行。有了这个,我设法打破了它:

Dane osobowe po zmianie (dopisane): Surname1 Name1 (RYSZARD, EUGENIA) Zam. 99-100 Muczyn (Geod) 6A, Płeć: K, PESEL: 99945104321

Jednostki Rejestrowe osoby (w gminie): 0001.G16 0002.G56 Surname2 Name2 (ANDRZEJ, AGNIESZKA) Zam. 99-100 Muczyn (Geod) 4A, Płeć: K

Jednostki Rejestrowe osoby (w gminie): 0001.G16 0001.G07 0001.G43 Surname1 Name1 Name2 (ANDRZEJ, AGNIESZKA) Zam. 99-100 MUCZYN (Geod) 4A, Płeć: M

Jednostki Rejestrowe osoby (w gminie): 0001.G16

所以,问题是我要在0001.G16 0002.G56Jednostki Rejestrowe osoby (w gminie): 0001.G16 0001.G07 0001.G43之后进一步打破

可能需要正则表达式,但我如何处理0001.G**正在改变的数量。

干杯!

1 个答案:

答案 0 :(得分:1)

匹配[0-9]{4}.G[0-9]{2}(?: [0-9]{4}.G[0-9]{2})*

替换为\0\n

https://regex101.com/r/5sfaeL/2

使用单个正则表达式的两个操作:

匹配([0-9]{4}.G[0-9]{2}(?: [0-9]{4}.G[0-9]{2})* |( )(?=Jednostki))

https://regex101.com/r/5sfaeL/3

regex101还提供了对正在发生的事情的解释。