/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Problemer med RegExp
Fra : MacMan


Dato : 06-06-01 22:32

Hej,

Jeg har fundet et glimrende script der kan omsætte en søgestreng såsom
"hunde OR katte" til f.eks. WHERE Titel = 'hunde' OR Titel = 'katte' - der
kan desuden benyttes hele sætninger vha. "", parenteser m.v.
Alt det virker glimrende.

Problemer er bare, at en søgning på "hunde katte" bliver opfattet som "hunde
OR katte", hvorimod jeg mener der er mere oplagt med "hunde AND katte".
Et mellemrum uden anden angivelse betrages altså som OR istedet for AND.
Men jeg kan ik' hitte ud af'ed (citat: Polle)...
Scriptet er her, og jeg synes det er nydeligt og velkommenteret, jeg har
bare ikke det mindste tjek på regular expressions som der benyttes i stor
stil:

http://arto.dk/buildquery.txt

- Morten



 
 
Lauritz Jensen (07-06-2001)
Kommentar
Fra : Lauritz Jensen


Dato : 07-06-01 11:30

MacMan wrote:
>
> Problemer er bare, at en søgning på "hunde katte" bliver opfattet
> som "hunde OR katte", hvorimod jeg mener der er mere oplagt med
> "hunde AND katte". Et mellemrum uden anden angivelse betrages altså
> som OR istedet for AND.

Mønsterkoden skal være:
' pull out keywords and phrases that MUST match within a search
loRegExp.Pattern =
"(((OR|[|])\s*)?[\(\[\{""].*[\)\]\}""])|((OR\s+|[|]\s*)\b[-\w']+\b)"
Set loRequiredWords = loRegExp.Execute(asKeywords)
asKeywords = loRegExp.Replace(asKeywords, "")

' pull out keywords and phrases that MUST NOT match within a search
loRegExp.Pattern =
"(((NOT|[-])\s*)?[\(\[\{""].*[\)\]\}""])|(((NOT\s+|[-])\s*)\b[-\w']+\b)"
Set loUnwantedWords = loRegExp.Execute(asKeywords)
asKeywords = loRegExp.Replace(asKeywords, "")

' pull out keywords and phrases that must have AT LEAST ONE match within
a search
loRegExp.Pattern =
"((AND|[+&])\s*[\(\[\{""].*[\)\]\}""])|((AND\s|[+&]\s*)?\b[-\w']+\b)"
Set loOptionalWords = loRegExp.Execute(asKeywords)
asKeywords = loRegExp.Replace(asKeywords, "")

--
Lauritz

Søg
Reklame
Statistik
Spørgsmål : 177556
Tips : 31968
Nyheder : 719565
Indlæg : 6408865
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste