Re: [dk-tug] [OT] elisp find dupletter
Rasmus Villemoes <[email protected]>
| Newsgroups | gmane.comp.tex.danish |
|---|---|
| Organization | D03 |
| Message-ID | <[email protected]> |
Lars Madsen <[email protected]> writes: > Hej > > Nogen der kender en regexp eller en anden smart metode til at finde > dupletter i tekstfiler? > > Det vil sige 'ord ord' hvor mellemrummet er generelt whitespace og > hvor ord kan indeholde æøå (i passende encoding, i dette tilfælde > latin1) > > reftex har en rar feature med reftex-search-document som skal fodres > med en passende regexp Jeg synes da \(\b[[:word:]]+\b\)[[:space:]]+\1 ser ud til at virke fint for mig i Emacs. Måske er det der har snydt dig at "\s" i PCRE staves "\s " i Emacs (http://www.gnu.org/software/emacs/manual/html_node/emacs/Regexp-Backslash.html#Regexp-Backslash). Men character classes virker ligedan og er lidt mere selvforklarende. > Synes bare ikke lige jeg kan finde den rette regexp > > I Perl (uden krav om æøå) virker denne nogenlunde > > > while ( $s =~ /(\b([[:word:]]+)\s+\2\b)/msg ) { .. } > > hvor jeg har hele filen indlæst i $s Perl kan da sagtens forstå æøå. Bare sørg for at perl har forstået din tekst rigtigt (Det vil sige at perl skal tænke på din streng som en sekvens af 'characters' og ikke 'bytes'. Det gør perl først når du har sagt hvordan dine bytes skal fortolkes. use Encode; $s = (slurp filen) $s = decode latin1 => $s; hvis det er latin1, ellers erstat med utf8 eller hvad det nu måtte være.) > nogen ideer? Jeg tror jeg vil foreslå pcregrep med --color optionen i en terminal. Jeg vil lige se om jeg kan strikke et eksempel sammen. -- Rasmus Villemoes <http://rasmusvillemoes.dk/> _______________________________________________ [email protected] mailing list