Hej igen,
$string er en mængde tekst, hvor jeg ønsker at oversætte.
Problemet heri er, at hvis jeg ikke bruger \b så vil "kr" matche i f.eks.
skrive - jeg vil kun have det, at den matcher præcis det ordgrænse incl.
tegn såsom .,! osv. Det er som om, at hvis jeg bruger \b - og der er
ikke-bogstav indeni, så virker det ikke.
F.eks.
$string =~ s/\bVenligst indtast din e-mail adresse i feltet
'E-mail'\b/Please write your e-mail/gi;
virker ikke da der er quotes i E-mail, mens
$string =~ s/\bSend spørgsmål\b/Send the question/gi;
virker, fordi der kun består af bogstaver.
Håber du har fat på det nu
Claus
"Lars Balker Rasmussen" <lars@balker.org> skrev i en meddelelse
news:0fsn13rzl1.fsf@laphroaig.balker.org...
> "Claus Jul Larsen" <clausanne@mail.dk> writes:
> > OK, jeg prøver at komme med et bedre eksempel:
> >
> > Hvis jeg skriver:
> >
> > $string =~ s/\bMit navn er\b/My name is/gi;
> >
> > Så bliver "Mit navn er" oversat til "My name is" - ingen problemer der.
Men
> > ....
> >
> > $string =~ s/\bMit navn er:\b/My name is/gi;
> >
> > Så bliver det ikke replaceret, ganske fordi der indgår en ":" i ordet.
> >
> > Jeg ønsker at have mulighed for at det virker med \b og andre tegn,
f.eks.
> > ?":;. .... Kan man det?
>
> Du har stadig ikke fortalt hvad $string indeholder.
>
> Ovenstående virker begge fint, hvis $string indeholder f.eks.
>
> $string = "Mit navn er: Yo.";
>
> Så det er stadig ikke helt nemt at gætte hvad du vil!
>
> Hvis du bare ønsker at et vilkårligt ikke-bogstav skal matches med
> hvis det er der, kan du bruge
>
> $string =~ s/\bMit navn er\b\W?/My name is/gi;
> --
> Lars Balker Rasmussen "S.M.R.T."