Posted By: snake (:q!) on 'CZprogram'
Title:     Re: Regularni vyrazy podruhe
Date:      Tue Jun  5 03:36:42 2007

>   Uz se v tom rejpu pres hodinu a pul a zaboha nemuzu prijit na vyraz, ktery
> z hledani vylouci ty escape sekvence. Vim, ze problem je v nahrazeni . v
> tom vyrazu za jiny vyraz, ktery rekne
> alespon         'jakykoli znak krome dvojice znaku "'
> nebo (lepe)     'jakykoli znak krome znaku predchazenych zpetnym lomitkem'
>   Zkusil jsem
>         ("(.|")*?")

poznamka mimo: pozor, ta prvni tecka pozere cokoli, cast za | se nikdy 
neaplikuje... 

No, nejsem si uplne jisty, jestli jsem pochopil spravne, co pozadujes (a 
navic, jak uz napsal jaydee, nepises ani, pro co ty regexpy chces), zkusim 
proto napsat jen obecny hint a budu pritom predpokladat, ze Ti jde o 
nasledujici: 

nejdriv uvozovky, pak nejaky text, pak uvozovky
pricemz:
pokud text uprostred obsahuje escape, maji se uvozovky (ci jakykoli jiny 
znak) za nim ignorovat

Pak staci IMHO proste jen vybudovat jednotlive varianty, co muze text 
obsahovat, a dat za ne hvezdicku apod.

A to vybudovani variant bude neco jako
- jakykoli znak krome escape
- escape a za nim jeste jeden (jakykoli) znak)

To prvni vytvoris pomoci [^] notace
to druhe pomoci bezne konkatenace
a oboje spojis operatorem "nebo", vsechno spravne ouzavorkujes (aby se 
operatory nebo ci hvezdicka aplikovaly na to, co skutecne chces) a pripadne 
pouzijes modifikatory vyhledavani, aby to zralo i entery apod...

Jestli jde o perl a escapem ma byt backslash, bude to neco jako
bash-3.1$: perl -ne 'print if /"([^\]|(\.))*"/'
ktere sezere "a", "ab" i "a"b", ale nikoli "a"

Je to to, co hledas?

snake 

Search the boards