Strona 1 z 1
Wyrażenie regularne: szukanie cytatów
: śr sty 18, 2012 12:46 pm
autor: arek
Nie mogę wymyślić jak napisać wyrażenie regularne by mi znajdowało wszystko co jest między znakami cytatu. Na początek próbowałem coś takiego
".*" ale to mi łączy cytaty.
tzn. Przypuśćmy że mamy taki tekst:
Lorem ipsum dolor sit amet, "consectetur adipiscing" elit. Donec in mauris eu sapien mollis "venenatis ac vitae leo". Curabitur ornare mollis ornare.
To jak dam znajdź wszystkie dostaje coś takiego:
Lorem ipsum dolor sit amet, "consectetur adipiscing" elit. Donec in mauris eu sapien mollis "venenatis ac vitae leo". Curabitur ornare mollis ornare.
A oczekuję:
Lorem ipsum dolor sit amet, "consectetur adipiscing" elit. Donec in mauris eu sapien mollis "venenatis ac vitae leo". Curabitur ornare mollis ornare.
Da się?
Re: Wyażenie regularne: szukanie cytatów
: śr sty 18, 2012 11:54 pm
autor: Jan_J
Regex dopasowuje możliwie najszerszy obszar. Szukaj cytatu nie zawierającego "
"[^"]*"
Ja bym jeszcze dołożył wykrywanie porządnych cudzysłowów: “„ przy otwarciu i ” przy zamknięciu
[“„"][^“„”"]*["”]
Re: Wyażenie regularne: szukanie cytatów
: czw sty 19, 2012 10:26 am
autor: arek
Jan_J pisze:Regex dopasowuje możliwie najszerszy obszar. Szukaj cytatu nie zawierającego "
"[^"]*"
Dzięki wielkie. To mi działa.
Jan_J pisze:
Ja bym jeszcze dołożył wykrywanie porządnych cudzysłowów: “„ przy otwarciu i ” przy zamknięciu
[“„"][^“„”"]*["”]
Wprawdzie mam tekst, który właśnie nie zawiera cudzysłowów drukarskich. Ale na przyszłość pewnie się przyda.
A jak już jesteśmy przy temacie. Da się jakoś zamienić te "" na te „“ ? Bo przy wstawianiu to mi zamienia.
Re: Wyrażenie regularne: szukanie cytatów
: ndz sty 29, 2012 2:21 pm
autor: Jan_J
Jeżeli założyć, że wszystkie cudzysłowy typu " są niepożądane, i że odstępy wokół znaków przestankowych są poprawne, to w dwóch etapach:
pierwszy: <spacja>" na <spacja>„
drugi: " na ”
Jeżeli założyć ponadto, że cudzysłowy są poprawnie sparowane, to wystarczy jeden przebieg:
<spacja>"([^"]*)" na <spacja>„$1”
W praktyce oba założenia są zbyt optymistyczne. Warto automatyzować wyszukiwanie kandydatów, ale decyzje o zamianie podejmować samemu.
Re: Wyrażenie regularne: szukanie cytatów
: pn lut 06, 2012 1:09 am
autor: zulu144
Jan_J pisze:Jeżeli założyć, że wszystkie cudzysłowy typu " są niepożądane, i że odstępy wokół znaków przestankowych są poprawne, to w dwóch etapach:
pierwszy: <spacja>" na <spacja>„
drugi: " na ”
Jeżeli założyć ponadto, że cudzysłowy są poprawnie sparowane, to wystarczy jeden przebieg:
<spacja>"([^"]*)" na <spacja>„$1”
W praktyce oba założenia są zbyt optymistyczne. Warto automatyzować wyszukiwanie kandydatów, ale decyzje o zamianie podejmować samemu.
Sparowanie trudno sprawdzić (parzystość znaków)
Natomiast usunąć zbędne spacje łatwiej.
Czyli należy zacząć od wyszukiwania pojedynczo <spacja>"<spacja>
i usunięcia niepotrzebnych spacji.
Może nawet lepiej skorzystać z makra poprawiającego interpunkcję komputerową.
Następnie dwa wskazane etapy.
i dodać etapy ze otwarcie cudzysłowu może być na początku akapitu lub po łamaniu wiersza, poprzedzone twardą spacją, kilkoma rodzajami myślników.
Po zamknięciu cudzysłowu mogą być analogiczne znaki.