This code will look for the class=" and " as a non matched anchor. Then it will take each of the attribute values found and put each of them into a named capture group called Assignements.
Then linq will extract out the just those named capture(s) and then look for a single "Float" item from the captured group and return true or false.
string data = @"<span class = ""float align cssnames"">";
string pattern = @"(?:class\s*=\s*\x22)((?<Assignments>[^\s\x22]+)(?:\s?))+(?:\x22)";
var containsFloat =
Regex.Matches(data, pattern, RegexOptions.Multiline)
.OfType<Match>()
.Select(mt => mt.Groups["Assignments"].Captures
.OfType<Capture>()
.Select(c => c.Value))
.SelectMany(assignments => assignments) // is an IEnumerable<string> = { "float", "align", "cssnames" } at this point
.Any(assignment => assignment == "float"); // True!