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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.