webForumDet fria alternativet

Regex-problem

6 svar · 632 visningar · startad av saw

sawMedlem sedan mars 20011 880 inlägg
#1

Jag vore tacksam om jag fick lite hjälp här.
Jag vill hitta allting innom body-taggarna.

string sText = webBrowser1.DocumentText;
            string kollaM = "\\<BODY>*\\</BODY>";
            Regex repost = new Regex(kollaM, RegexOptions.IgnoreCase | RegexOptions.Compiled);
            Match m;
            m = repost.Match(sText);
            if (m.Success)
            {
                label1.Text = m.Value.ToString(); ;
            }

Jag får fel på mönstret

parsar \<BODY>*\</BODY> - Referens till det odefinierade gruppnamnet BODY.
Att jag gör fel, det förstår jag, men inte hur jag skall lösa det.

sawMedlem sedan mars 20011 880 inlägg
#2

Efter mycket letande så kom jag fram till detta.

string sText = webBrowser1.DocumentText;
               
                string kollaM = @"<body>(.|\n)*?</body>";
                Regex repost = new Regex(kollaM, RegexOptions.IgnoreCase | RegexOptions.Compiled);
                Match m;
                m = repost.Match(sText);
                if (m.Success)
                {
                    label1.Text = m.Value.ToString();
                }
                else
                    label1.Text = "PROBLEM";

:bire

sawMedlem sedan mars 20011 880 inlägg
#3

Jag tänkte fel, jag skulle ha med det som var innanför body-taggarna, hur ändrar jag då min pattern?

voigtann1Medlem sedan juni 20019 519 inlägg
#4
try {
	Regex regexObj = new Regex(@"<body>([\w\W]+)</body>", RegexOptions.IgnoreCase);
	Match matchResults = regexObj.Match(sText);
	while (matchResults.Success) {
		label1.Text = matchResults.Groups[0].Value;
		matchResults = matchResults.NextMatch();
	} 
} catch (ArgumentException ex) {
	// Syntax error in the regular expression
}
sawMedlem sedan mars 20011 880 inlägg
#5

Hej och tack, men det är ett "problem".
<body> och </body> skall också bort. Måste jag replaca det?

voigtann1Medlem sedan juni 20019 519 inlägg
#6
label1.Text = matchResults.Groups[0].Value;

skall göra detta,
annars kan det vara

label1.Text = matchResults.Groups[1].Value;
sawMedlem sedan mars 20011 880 inlägg
#7

Helt perfekt, tack för hjälpen

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