Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 6 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 25.11.07
Prihlásený: 02.07.21
Príspevky: 101
Témy: 21
Bydlisko: Bratislava
Príspevok NapísalOffline : 01.07.2021 10:18

Ahoj, chcem poprosiť o radu. Potrebujem zameniť text v súbore za nasledujúcich podmienok.
Mám textový súbor s obsahom:
Kód:
123
repa
kapusta
cibuľa

456
repa
kapusta
cibuľa

123
kapusta
cibuľa

456
kapusta
cibuľa

123
mrkva
petržlen
kapusta
pór
cibuľa

456
mrkva
petržlen
kapusta
pór
cibuľa


Potrebujem nahradiť reťazec "kapusta" reťazcom "kel". ale len v skupine, ktorej predchádza reťazec "123", teda nie v tej skupine, ktorej predchádza reťazec "456".
Alebo inak, nahradiť "kapusta" reťazcom "kel" iba vtedy, ak hocikde predtým bol reťazec "123" nenasledovaný reťazcom "456". Resp. v smere späť od reťazca "kapusta" je bližšie reťazec "123" ako reťazec "456".
Predpokladám, že sa toto dá spraviť cez Regex.
(Používam aplikáciu fnr.exe)

Výsledkom by malo byť:
Kód:
123
repa
kel
cibuľa

456
repa
kapusta
cibuľa

123
kel
cibuľa

456
kapusta
cibuľa

123
mrkva
petržlen
kel
pór
cibuľa

456
mrkva
petržlen
kapusta
pór
cibuľa


Veľmi pekne ďakujem za tipy.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 15.06.14
Prihlásený: 26.03.24
Príspevky: 17930
Témy: 142
Bydlisko: Bratislava
Príspevok NapísalOffline : 01.07.2021 10:24

samotny regex ziadny replace nepozna, je to len string pattern







_________________
ITX >>> ATX
Offline

Užívateľ
Užívateľ
Regex replace

Registrovaný: 01.10.06
Prihlásený: 19.02.24
Príspevky: 6562
Témy: 15
Bydlisko: Bratislava
Príspevok NapísalOffline : 01.07.2021 11:04

On mal podla mna chce prave ten pattern.

Ja na to zvyknem pouzivat nejaky online tool.

Napriklad [https://regex101.com/]
Tam som si skopiroval ten tvoj text a napriklad pattern:
Kód:
(123(\n[^0-9]+)+(kapusta))+

v groupe 3 deteguje prave tu kapustu, teraz to uz len podhodit nejaku programu co ti ten subor cita a nahradit obsah group 3 retazcom "kel"

samozrejme nastavenie spracovania musis mat multiline global







_________________
PC: Intel Q6600@3,33GHz, MSI GTX 670 OC (TwinFrozr IV), DDR2 1066 A-data 8Gb, Seagate Barracuda 7200.12 2000GB, Kingston 240GB SSD, Gigabyte EP35-DS4, MSI OPTIX G273QF , Logitech G502 Proteus Spectrum
Notebook: Sony VAIO CW Series (VPC-CW1S1E/B) / LENOVO Legion 5 Pro 16ACH6H Stingray White || Mobil: Samsung Galaxy S21 FE || Auto: Audi S5 Sportback
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 25.11.07
Prihlásený: 02.07.21
Príspevky: 101
Témy: 21
Bydlisko: Bratislava
Príspevok Napísal autor témyOffline : 02.07.2021 12:35

Ďakujem veľmi pekne, poskúšam, pohrám sa s tým. Ďakujem za vysvetlenie a objasnenie pojmov. :D
Ja s RegEx nie som až tak veľký kamarát, zatiaľ. Musím si spraviť čas a prejsť si nejaký qalitný tutoriál.

Privítam tipy na nejaké qalitné tutoriály, môžu byť aj v angličtine, aj keď radšej by som sk/cz.

Vďaka.


Offline

Správca fóra
Správca fóra
Regex replace

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 02.07.2021 13:40

MTK píše:
Kód:
(123(\n[^0-9]+)+(kapusta))+
Toto ale nenajde kapustu hned za 123, takze treba dat prec \n a + z prvej vnorenej zatvorky, cize zjednodusene: (123[^0-9]+)kapusta a potom nahradit kapustu za kel je mozne pomocou $1kel







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Regex replace

Registrovaný: 01.10.06
Prihlásený: 19.02.24
Príspevky: 6562
Témy: 15
Bydlisko: Bratislava
Príspevok NapísalOffline : 02.07.2021 14:53

Mas pravdu, ani som si to nevsimol, ked som to robil







_________________
PC: Intel Q6600@3,33GHz, MSI GTX 670 OC (TwinFrozr IV), DDR2 1066 A-data 8Gb, Seagate Barracuda 7200.12 2000GB, Kingston 240GB SSD, Gigabyte EP35-DS4, MSI OPTIX G273QF , Logitech G502 Proteus Spectrum
Notebook: Sony VAIO CW Series (VPC-CW1S1E/B) / LENOVO Legion 5 Pro 16ACH6H Stingray White || Mobil: Samsung Galaxy S21 FE || Auto: Audi S5 Sportback
Odpovedať na tému [ Príspevkov: 6 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. regex

v PHP, ASP

2

311

08.02.2015 23:24

esso82 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Regex ?

v PHP, ASP

0

369

12.07.2012 9:34

d0.0b Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. MySQL REGEX

v Databázy

2

363

20.06.2013 16:16

Punker661 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. regex a diakritika

v PHP, ASP

10

2753

08.03.2010 20:05

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Replace text

v JavaScript, VBScript, Ajax

5

477

28.05.2012 13:49

xxx9955 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Replace Textu

v PHP, ASP

12

594

05.08.2009 9:52

p360t Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pomoc s regex-om

v PHP, ASP

1

234

13.04.2013 9:10

BX Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PHP replace help

v PHP, ASP

4

662

13.04.2008 19:31

Ded'leg Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Replace Text on web

v JavaScript, VBScript, Ajax

2

476

28.03.2009 12:43

Frees Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Regex - iba cisla a desatinna bodka

v JavaScript, VBScript, Ajax

9

843

24.04.2019 10:28

neopagan Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. string.replace na viac riadkoch nefunguje

v JavaScript, VBScript, Ajax

11

714

22.03.2011 14:50

camo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Invalid system disk replace the disk and press any key

v Operačné systémy Microsoft

5

825

26.04.2008 6:20

mig07 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. "Search and Replace" Shell skript

v Ostatné

1

514

13.06.2011 19:03

Ďuri Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra