webForumDet fria alternativet

[NET 2.0 -C#] RegExp problem

2 svar · 360 visningar · startad av aleborg

aleborgMedlem sedan jan. 20013 341 inlägg
#1

Tänkte fortsätta på min tidigare tråd.
Jag har en textsträng i formatet:

"bla bla bla [News:Short MaxDescription=200 MaxSubject=100 MaxNews=5 ShowMoreLink=true] bla bla bla"

Jag vill plocka ut och ersätta "[News:Short MaxDescription=200 MaxSubject=100 MaxNews=5 ShowMoreLink=true]" men samtidigt få ut värdena från MaxDescription, MaxSubject, MaxNews och ShowMoreLink.
Dessa 4 variablar är valfria och behöver inte finnas med, dvs den kan se ut så här: "[News:Short Maxdescription=200]", men frågan är hur min regexp pattern ska se ut?

Testade den här:

    Regex reqexpNews = new Regex("\\[News:Short ((MaxSubject=(?<maxsubject>.*)) ?|(MaxDescription=(?<maxdescription>.*)))\\]", RegexOptions.Compiled | RegexOptions.IgnoreCase);

på strängen "bla bla bla [News:Short MaxDescription=200 MaxSubject=100] bla bla bla" och fick resultatet "200 MaxSubject=100"

aleborgMedlem sedan jan. 20013 341 inlägg
#2

Den här ger nästan önskat resultat:

    Regex reqexpNews = new Regex(@"\[News:Short([^\]])?((maxnews=)(?<maxnews>\d+)([^\]])?)?((maxsubject=)(?<maxsubject>\d+)([^\]])?)?((maxdescription=)(?<maxdescription>\d+))?\]", RegexOptions.Compiled | RegexOptions.IgnoreCase);

Men om jag byter plats på maxsubject och maxdescription så skiter det sig :/

aleborgMedlem sedan jan. 20013 341 inlägg
#3

Någon som har ett förslag?

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