Jag har problem att lösa en rexexp funktion som jag vill ska fungera på följande sätt. strText = ReplaceTags("(.*?)\[BRYT\]", "<td align=""left"" valign=""top"">$1</td>", strText) Det är inte ett problem då jag i koden har <tr></tr> "utanför" det är bara celler jag bygger m.h.a koden ovanför. Borde funka utan RegExp?: Yes, tänkte inte på att det gick då lätt, hade snöat in på regexp :P nu ska jag bara räkna hur många [bryt]-taggar som kan förekommer i texten. Varför sa du inte det från början?Hjälp med Rexexp...
Har en textmassa som kan formateras m.h.a "bbcode" och i den textmassan skall man kunna lägga in en tagg [BRYT] för att skapa nya kolumner i presentationsgränsnittet. men man skall kunna lägga hur många [BRYT man vill i texten så därför måste man räkna hur många träffar man får på just den taggen.
Jag har skrivit ihop en lite kodsnutt som funkar sådär, den letar upp första [bryt]-taggen och formaterar det som tänkt men sen skiter det sig på de andra [bryt]-taggarna som är inlaggda i texten.
vill att den ska göra följande...
Oformaterad text:
en massa text [BRYT] det fortsätter en massa text [BRYT] sen kommer det ännu mera.
Formaterat resultat:
<tr>
<td align=""left"" valign=""top"">en massa text </td>
<td align=""left"" valign=""top"">det fortsätter en massa text </td>
<td align=""left"" valign=""top"">sen kommer det ännu mera.</td>
</tr>
Har någon lust att ge mig tips på hur jag får till det?
så här ser funktionen ut:
<code>
Function ReplaceTags(strPattern, strReplace, strText)
Dim objRX
set objRX = New RegExp
objRX.IgnoreCase = True
objRX.Global = True
objRX.Pattern = strPattern
ReplaceTags = objRX.Replace(strText, strReplace)
End Function
strText = ReplaceTags("(.*?)\[BRYT\]", "<td align=""left"" valign=""top"">$1</td>", strText)
</code>
Tack på förhandSv: Hjälp med Rexexp...
Är du säker du detta?
Är det inte ny TR du skall ha också eller hur ser designen ut?
på det sättet du gör det så gör man bara nya celler och du avslutar inte befintlig cell innan du skapar en ny
strText = ReplaceTags("(.*?)\[BRYT\]", "</td><td align=""left"" valign=""top"">$1</td><td align=""left"" valign=""top"">", strText)
Så här borde det vara för att vara rätt, men då är det ingen ny table row utan endast table cell.Sv:Hjälp med Rexexp...
Jag har problem med själva regexp uttrycket jag får den inte och göra som tänkt då jag använder flera [BRYT]-taggar det funkar när jag använder en.
Så HTML har jag inga probs med.
mvhSv: Hjälp med Rexexp...
strText = "<td align=""left"" valign=""top"">" & _
Replace(strText, "[BRYT]", "</td>" + vbCrLf + "<td align=""left"" valign=""top"">") & _
"</td>"
Sv:Hjälp med Rexexp...
Tack så mycket =)Sv:Hjälp med Rexexp...
Dim rows
Dim NumRows
rows = Split(strText, "[BRYT]", , vbTextCompare)
NumRows = UBound(rows)
strText = "<td align=""left"" valign=""top"">" & _
Join(rows, "</td>" + vbCrLf + "<td align=""left"" valign=""top"">") & _
"</td>"
erase rows