Extracting text fields from  tags in an HTML message
I know this is Code Review not Rewrite My Code, however I would suggest using a third-party Html parser (like the Html Agility Pack for example) over regular expressions if that's an option. 

I realize you're doing very trivial parsing here, but from my personal experiences regular expressions grow to unmaintainable status quicker than anything in software development.

If you were to use a Html parser, you could do something like this:

string htmlToParse = "&lt;p&gt;&lt;span class=\"fieldText\" fieldId=\"field-4\"&gt;Some text&lt;/span&gt; this is a test&lt;/p&gt;&lt;p&gt;&lt;span class=\"fieldText\" fieldId=\"field-5\"&gt;Some more text&lt;/span&gt; this is another test&lt;/p&gt;";
const string ElementToParse = "span";
const string IdField = "FieldId";

HtmlDocument htmlDocument = new HtmlDocument();
htmlDocument.LoadHtml(htmlToParse);

int fieldId = default( int );

Dictionary&lt;int,string&gt; fieldValuesTable = 
(
    from
        htmlNode in htmlDocument.DocumentNode.DescendantNodes()
    where
        htmlNode.Name.Equals( ElementToParse, StringComparison.InvariantCultureIgnoreCase )
        &amp;&amp;
        htmlNode.Attributes.Contains( IdField )
    let
        id = htmlNode.Attributes[ IdField ].Value
    where
        Int32.TryParse( id.Substring( id.IndexOf( "-" ) + 1 ), out fieldId ) // this is stil not ideal,
    select
        new { Id = fieldId, Text = htmlNode.InnerText }
).ToDictionary( f =&gt; f.Id, f =&gt; f.Text );


You get the output:

4 : Some text
5 : Some more text


IMHO, it's much cleaner and maintainable.