Kom ihåg mig?
Home Menu

Menu


Word boundary i reguljära uttryck

 
Ämnesverktyg Visningsalternativ
Oläst 2009-04-07, 00:28 #1
koalas avatar
koala koala är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Sep 2004
Inlägg: 1 154
koala koala är inte uppkopplad
Har WN som tidsfördriv
koalas avatar
 
Reg.datum: Sep 2004
Inlägg: 1 154
\b är ju smidigt i reguljära uttryck när man vill matcha hela ord (t ex: /\bord\b/). Tyvärr funkar det inte alltid så bra med annat än engelska ord (\w) bestående av [a-zA-Z0-9]. Ord som innehåller svenska tecken delas upp felaktigt, t ex "innehåller", som blir "\binneh\bå\bller". Detta ställer till det en del för mig både i PHP och JavaScript, och jag undrar om någon annan har smidiga lösningar?

Exempelkod (JavaScript eftersom det är vad jag håller på med just nu, men jag får motsvarande i PHP):

Kod:
"de det de öde både ödem <b>öde</b> <b>de</b> öde".replace(/\bde\b/gi, '--')

Resultat: "-- det -- ö-- bå-- ödem <b>ö--</b> <b>--</b> ö--"
Önskat resultat: "-- det -- öde både ödem <b>öde</b> <b>--</b> öde"
Är det någon som har smidiga förslag på sätt att ställa in vad \b (och \w) ska matcha i PHP samt JavaScript? De workarounds jag använt inkluderar dels att splitta strängen vid " " men det känns lite klumpigt i jämförelse med ett enkelt \b, och löser inte heller allt (t ex missar man ju ord som avslutas med punkt eller en HTML-tagg).
koala är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 10:58.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017