Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Problem med att fetmarkera mer än ett ord

Postades av 2004-10-07 12:39:05 - Benni Svensson, i forum regular expressions, Tråden har 8 Kommentarer och lästs av 1258 personer

Jag försöker att via regex markera mer än ett ord i min sökmotor.
<code>
Function boldText(myString,strReplace)
dim nWord,kW,strText
Set objRegExp = New regexp
objRegExp.Global = true
objRegExp.IgnoreCase = true


if instr(strReplace," ") then'finns det mer än ett ord
nWord = split(strReplace," ")'splitta på mellanslag

kW ="&quot;(" 'denna funktionen lägger ihop sökorden t ex "(Access|databas|DSN)"

for i = 0 to ubound(nWord)
if i <> ubound(nWord) then
kW = kW & nWord(i) & "|"
elseif i = ubound(nWord) then
kW = kW & nWord(i) & ")&quot;"
end if
next

objRegExp.Pattern =kW
objRegExp.Pattern =kW
for i = 0 to ubound(nWord)
strText=strText & "<B>$" & i & "</B>"
next
boldText =objRegExp.Replace(myString,strText)'här skall den ersätta alla med fet text
boldText = replacestring
else
'det fanns bara ett sökord
objRegExp.Pattern = TRIM(strReplace)
replacestring = objRegExp.Replace(myString, "<B>" & strReplace & "</B>")
boldText = replacestring
end if
End Function
</code>
När jag kollar med response.write, så ser jag att mina variabler(lopparna) fungerar perfekt.
Skriver jag in ett ord, så fungerar det perfekt, men skriver jag t ex två ord, så händer ingenting.
Vad missar jag?
[REDIGERAT]
JAg har kommit en bit på vägen, men den markera bara ett ord.
<code>
nWord = split(strReplace," ")'splitta på mellanslag
kW ="&quot;(" 'denna funktionen lägger ihop sökorden t ex "(Access)|(databas)|(DSN)"
for i = 0 to ubound(nWord)
if i <> ubound(nWord) then
kW = kW & nWord(i) & ")|("
strText="<B>$" & i & "</B>"
elseif i = ubound(nWord) then
kW = kW & nWord(i) & ")&quot;"'avsluta sökorden
strText=strText & "<B>$" & i & "</B>"'detta blir <B>$1</B><B>$2</B><B>$3</B>
end if
next
objRegExp.Pattern = kW'blir alltså (hatten)|(fånga)|(en)
replacestring = objRegExp.Replace(myString,strText)
boldText = replacestring
</code>
Det verkar vara jobbigt det här...


Svara

Sv: Problem med att fetmarkera mer än ett ord

Postades av 2004-10-08 00:22:43 - Per Persson

Är det bara ord inom citationstecken (&quot;) som skall hittas?


Svara

Sv: Problem med att fetmarkera mer än ett ord

Postades av 2004-10-08 11:46:18 - Benni Svensson

Taget ifrån webeye.nu
<code>
Set objRegExp = New regexp
objRegExp.Global = true
objRegExp.IgnoreCase = true
objRegExp.Pattern = "(Access|databas|DSN)"
strText = objRegExp.Replace(strText,"<b>$1</b>,<b>$2</b>,<b>$3</b>"))
Response.write strText
</code>
Det jag har gjort är som ovanstående, fast dynamiskt.
myString är hela texten(i detta fallet inlägg i mitt forum)
strReplace(i detta fallet sökorden som man har fyllt i, och som skall fetas)


Svara

Sv: Problem med att fetmarkera mer än ett ord

Postades av 2004-10-08 12:14:50 - Per Persson

Jo, men varför har du med &quot; i början och slutet av strängen? Skall bara ord som står inom citationstecken matchas?


Svara

Sv: Problem med att fetmarkera mer än ett ord

Postades av 2004-10-08 13:01:06 - Benni Svensson

Jag fick för mig att det skulle vara så, kanske där felet är?
[REDIGERAT]
Nej de skulla vara där, men jag tror att jag har kommit på varför det krabbar för mig.

Nu blev utskriften:

Ja tänk om $0en vore fyrkantig, vilka problem en $0fot$0smålvakt skulle ha då...

Sökorden som jag hadde var:
fot and boll
Men bägge har ju fått samma id(vet inte vad jag skall kalla det för)
Nu ser jag alltså felet, men hur fixa det?


Svara

Sv: Problem med att fetmarkera mer än ett ord

Postades av 2004-10-08 15:04:11 - Niklas Jansson

Ditt pattern ser ju inte ut som det som står innan. Du gör ju så att det blir:

objRegExp.Pattern = "(Access)|(databas)|(DSN)"

när det innan stod

objRegExp.Pattern = "(Access|databas|DSN)"

?


Svara

Sv: Problem med att fetmarkera mer än ett ord

Postades av 2004-10-08 15:59:43 - Benni Svensson

Hej Niklas, jo du har rätt, men det hjälpte inte alls
Nu ser det ut som:

Min SQL:
SQL: select * from t_forum where inlagg like '%om%' and inlagg Like'%boll%' ORDER BY inlagg DESC
(Den ser väll rätt ut?)
Pattern:
"(om|boll)"
Om jag inte använder mig av &quot; så blir det:
$0om $0bollen
om och bollen är då fetmarkerade, och man skulle ju kunna tänka på att köra en replace på $0 men det känns inte rätt...


Svara

Sv: Problem med att fetmarkera mer än ett ord

Postades av 2004-10-08 20:03:03 - Niklas Jansson

Skulle bara säga det att jag inte alls kan något om RegExp, påpekade bara det uppenbara jag såg. Tyvärr var det alltså inte det som var problemet.


Svara

Sv: Problem med att fetmarkera mer än ett ord

Postades av 2004-10-14 16:40:35 - Simon Dahlbacka

funkar det inte att bara göra nåt i stil med (fot|boll) och köra en global replace med <b>$0</b> ifall indexeringen börjar från noll?


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 615
27 953
271 709
5 480
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies