webForumDet fria alternativet

Ta bort text mellan två kända ord i text

ASP

10 svar · 482 visningar · startad av Bjuris

Medlem sedan juli 2001514 inlägg
Frågan#1

Jag har kört fast lite.

Jag får en sträng från ett program som jag behöver formatera lite.

I min strän så finns det två återkommande ord som heter POLAK samt +++
Mellan dessa ord så finns det en massa dynamiskt skräp innehållande datum, tidsstämplar och annat smått och gott, dvs dem varierar hela tiden.

Finns det något sätt man kan plocka bort den texten?
Jag menar, man har ju start ordet och avslutningsordet.

Har pillat lite med replace, men det går ju inte så bra då innehållet är dynamiskt.

Medlem sedan dec. 20025 483 inlägg
#2
t = "sträng"

dim re
set re = new regexp

re.pattern = "(POLAK)(?:(?:.|\n|\r)*?)(\+\+\+)"

response.write re.replace(t, "$1$2")

set re = nothing
Medlem sedan juli 2001514 inlägg
#3

Funkar perfa, hur gör man dock om texten slutar på ett ord typ: TEST

Medlem sedan dec. 20025 483 inlägg
#4
(\+\+\+) -> (TEST)
Medlem sedan juli 2001514 inlägg
#5

Det är det som är kruxet, fick nämligen ett exception vär sidan laddades när jag gjorde enl ovan.

Medlem sedan dec. 20025 483 inlägg
#6

Kör jag nedanstående kod endast får jag inga felmeddelanden:

t = "sträng"

dim re
set re = new regexp

re.pattern = "(POLAK)(?:(?:.|\n|\r)*?)(TEST)"

response.write re.replace(t, "$1$2")

set re = nothing
Medlem sedan juli 2001514 inlägg
#7

Ok tack så mycket, man kommer ju inte ihåg alla syntaxen för ASP, men nu fungerar det.

Hur skall man göra om man vill ta bort slutet på en sträng, jag vet inte vart, men efter 'UNT så vill jag inte att man skall fortsätta att printa ut strängen. dvs slutet är end of line.

Medlem sedan dec. 20025 483 inlägg
#8

Byt ut mönstret ovan mot

re.pattern = "((?:.|\n|\r)*?'UNT)(?:.|\r|\n)*"
Medlem sedan juli 2001514 inlägg
#9

perfa.
Läste det iofs på ett annat sätt med en split och sedan så skrev jag ut det första värdet i arrayen.

Har dock ett problem.
Min regexp fungerar finfint på min server, men när jag skall lägga upp det på vår webbserver så får jag följande felmess:

Microsoft VBScript runtime (0x800A139A)
Unexpected quantifier

på rad
message = re.replace(message, "$1$2")

mitt pattern enl:
re.pattern = "(POLAK)(?:(?:.|\n|\r)*?)(TEST)"

Medlem sedan juni 200032 967 inlägg
#10

Vilken version av IIS och script engine kör ni på webbservern?

http://www.webforum.nu/showthread.php?p=791256#post791256

Medlem sedan juli 2001514 inlägg
#11

ajaj, här har man fått en sprillans webbserver och sen så har man en gammal scriptmotor installerad...
Har installerat den nya, nu måste jag bara hitta ett bra tidsspann för en omstart (antagligen runt 4-5AM, då det är lite trafik) och sen så håller jag tummarna att det skall fungera.

258 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)