webForumDet fria alternativet

Problem med reg.exp.

5 svar · 231 visningar · startad av Denniz PoP

Denniz PoPMedlem sedan aug. 2002207 inlägg
#1

Hejsan.

Jag gör ett forum, men har nu stött på ett problem.

Jag använder reg exp för att få reda på om någon citerar någon annan. Man skriver då [.quote] och [./quote] (utan punkt såklart) runt inläggen. Detta funkar mycket bra...
Jag har dock ett litet problem...

Om jag skriver som följande:

[.quote][.i]Ursprungligen skrivet av Dazen[./i]

[.quote][.i]Ursprungligen skrivet av Dazen[./i]

Detta är ett test-inlägg.[./quote]

Citerar ovanstående inlägg.

[.i]Inlägget redigerades 2002-08-10 03:50:33 av Dazen.[./i]
[./quote]

Test...

så kommer endast de "yttre" [.quote]-taggarna att exekveras av reg exp. Detta gör att man inte kan citera ett citat. Hur skall jag fixa detta? Jag har satt Global till true så att den säker igenom hela, trots att den har fått en träff, men det verkar inte fungera.
Såhär gör jag nu:

re.Pattern = "\[quote\]((.|\n)*)\[/quote\]"
		Text = re.Replace(Text, "<table border=" & Chr(34) & "0" & Chr(34) & "><tr><td class=" & Chr(34) & 
"quote" & Chr(34) & " width=" & Chr(34) & "*" & Chr(34) & "<div class=" & Chr(34) & "quote" & 
Chr(34) & "$1</div></td></tr></table>")

(jag gjorde en radbrytning så att fönstret inte skulle bli så stort).

Skall jag skriva på något annarlunda sätt? Hur skall jag fixa detta?

LarsGMedlem sedan dec. 200012 464 inlägg
#2
re.Pattern = "\[quote\]((.|\n)*?)\[/quote\]"
Denniz PoPMedlem sedan aug. 2002207 inlägg
#3

Ursäkta att jag inte har kunnat svara tidigare, men om man gör som du skriver blir det fel.

"Unexpected quantifier" är felet. Det verkar som om man inte kan ha både * och ? men i koden samtidigt. Har testat med endast ?, men det hjälper inte.

Jag fick tips från ett annat ställe att jag skall skapa en egen "stack". Någon som vet vad jag menar och kan berätta lite hur man gör?

@ndersMedlem sedan juni 200032 969 inlägg
#4

Unexpected quantifier brukar betyda att man har för gammal version av scriptmotorn installerad.

Installera senaste versionen.

Denniz PoPMedlem sedan aug. 2002207 inlägg
#5

Mycket riktigt så fungerade det efter att jag uppgraderat skriptmotorn, men skriptet fungerar inte. Det går att köra, men resultatet blir fel.

Jag omringar mina quotes med rutor.

Om man skriver detta:

[.quote] bla bla

[.quote] yada yada [./quote]

[./quote]

så vill jag att "yada yada" skall komma i en egen ruta innuti "bla bla"-rutan. Men problemet är att den letar efter första [.quote] och sedan första [./quote]. Då paras de ihop med fel typ.
Jag måste alltså på något sätt få den att "börja innefrån och gå utåt" eller något liknande för att få det att fungera.

Eller kan man kanske söka efter [.quote] och sedan söka efter det sista [./quote] som den hittar och para ihop dessa på något sätt?

Aja, jag bara spekulerar lite. Är inte precis bra på RegExp. Någon som kan hjälpa lite?

EDIT: Nu ser jag att detta forum gör detta som jag vill. Alltså att man kan quota i en quote. Hur fungerar det på detta forum? Iofs är detta php, men idén lär ju vara den samma.

EDIT2: Punkterna skall självklart inte vara med i koden, de stoppar bara att det inte skall exekveras.

voigtann1Medlem sedan juni 20019 519 inlägg
#6

hmm.. har samma problem upptäkte jag nyss... :e någon som vet?

128 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)