|
| Case insensitive replace med sideeffekt Fra : Martin Orvad |
Dato : 07-04-04 23:05 |
|
I må meget undskylde sproget i følgende indlæg, men i sagens natur håber
jeg det er tilgiveligt
Jeg er i gang med at lave et forum for en kunde.
Jeg har lavet en case insensitive replace sådan her:
strMsg = Replace(strMsg, "pik", "is", 1, -1, vbTextCompare)
....og det fungerer jo fint nok, da en sætning som fx. "Jeg har en stor
PiK" jo naturligvis bliver til "Jeg har en stor is", men (også
naturligvis) giver det et problem hvis inputstrengen er fx. "Der er
masser af harpiks". Så bliver det jo til "Der er masser af hariss".
(Find selv på flere...).
Er der nogen der har et løsningsforslag, må man bare leve med det, eller
bør jeg helt lade være med at bytte hele ord ud i strengen?
Er der nogen her der på stående fod ved hvordan de store etablerede fora
gør?
Og endnu en gang undskyld sproget.
--
Martin Orvad
| |
Jakob Andersen (07-04-2004)
| Kommentar Fra : Jakob Andersen |
Dato : 07-04-04 23:39 |
|
Martin Orvad wrote:
> Er der nogen der har et løsningsforslag, må man bare leve med det,
> eller bør jeg helt lade være med at bytte hele ord ud i strengen?
> Er der nogen her der på stående fod ved hvordan de store etablerede
> fora gør?
Regular Expressions, f..eks. en funktion som nedenstående:
Function FjernKat(str)
Set objRegEx = New RegExp
objRegEx.Pattern = "(\s+)kat(\s+)"
objRegEx.IgnoreCase = True
objRegEx.MultiLine = True
objRegEx.Global = True
FjernKat = objRegEx.Replace(str, "$1is$2")
End Function
Et kald til denne som:
FjernKat("Min KaT har mange kattehår")
Vil f.eks. returnere strengen "Min is har mange kattehår"
--
Jakob Andersen
| |
Martin Orvad (08-04-2004)
| Kommentar Fra : Martin Orvad |
Dato : 08-04-04 01:37 |
|
Jakob Andersen wrote:
> Martin Orvad wrote:
>
>>Er der nogen der har et løsningsforslag, må man bare leve med det,
>>eller bør jeg helt lade være med at bytte hele ord ud i strengen?
>>Er der nogen her der på stående fod ved hvordan de store etablerede
>>fora gør?
>
>
> Regular Expressions, f..eks. en funktion som nedenstående:
[...]
Selvfølgelig! Tusind tak for det.
--
Martin Orvad
| |
Jan Vinten (08-04-2004)
| Kommentar Fra : Jan Vinten |
Dato : 08-04-04 09:19 |
|
Hej Martin,
Alternativt kunne du også lave det på en lidt mere "ufin" måde:
strMsg = Replace(strMsg, " pik ", " is ", 1, -1, vbTextCompare)
Altså lave et mellemrum før og efter ordet du vil have udskiftet!
/ Jan
"Martin Orvad" <news@orvad.invalid> wrote in message
news:c526s7$6jv$1@sunsite.dk...
> Jakob Andersen wrote:
>
> > Martin Orvad wrote:
> >
> >>Er der nogen der har et løsningsforslag, må man bare leve med det,
> >>eller bør jeg helt lade være med at bytte hele ord ud i strengen?
> >>Er der nogen her der på stående fod ved hvordan de store etablerede
> >>fora gør?
> >
> >
> > Regular Expressions, f..eks. en funktion som nedenstående:
> [...]
>
> Selvfølgelig! Tusind tak for det.
>
> --
> Martin Orvad
| |
Jens Gyldenkærne Cla~ (08-04-2004)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 08-04-04 09:26 |
|
Jan Vinten skrev:
> strMsg = Replace(strMsg, " pik ", " is ", 1, -1, vbTextCompare)
>
> Altså lave et mellemrum før og efter ordet du vil have udskiftet!
Det giver bare problemer hvis ordet står først eller sidst i en
sætning, eller hvis det er tegnsætningstegn indblandet.
NB: Det er svært at se hvad du svarer på når du svarer oven over
det du citerer. Læs gerne min signatur.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html
| |
Martin Orvad (08-04-2004)
| Kommentar Fra : Martin Orvad |
Dato : 08-04-04 12:02 |
|
Jens Gyldenkærne Clausen wrote:
>>strMsg = Replace(strMsg, " pik ", " is ", 1, -1, vbTextCompare)
>>
>>Altså lave et mellemrum før og efter ordet du vil have udskiftet!
>
>
> Det giver bare problemer hvis ordet står først eller sidst i en
> sætning, eller hvis det er tegnsætningstegn indblandet.
....og nu har jeg prøvet forskellige løsninger og kombinationer af disse,
men uanset hvordan man gør, så kan det jo omgås.
Jeg har nu besluttet, at det vil kræve uhensigtsmæssigt meget
"slave-scripting" før man har bare en lille procentdel af de tilfælde af
et ord med, man ikke vil have i sit forum.
Det er i alle tilfælde nemmere bare at skrive man gerne vil have en
sober tone i debatten, og derefter tro på det gode i mennesket... (Og
_det_ kan man jo nok ikke scripte sig ud af).
Men for forsøgets skyld var det da meget skægt.
Tak for jeres input.
--
Martin Orvad
| |
Lars Hoffmann (08-04-2004)
| Kommentar Fra : Lars Hoffmann |
Dato : 08-04-04 23:03 |
|
Martin Orvad escribió / skrev
> Det er i alle tilfælde nemmere bare at skrive man gerne vil have
> en sober tone i debatten, og derefter tro på det gode i
> mennesket... (Og _det_ kan man jo nok ikke scripte sig ud af).
DELETE * FROM users WHERE good_intention IS NULL
--
Publica fotos de tu Cine en Casa en
http://www.intercambiodvd.com/CineEnCasa
| |
|
|