Is this along the lines of what you are looking for?
$str = '
1. content1, content2<br>
2. content3, content4<br>
3. content5, content6<br>
4. content7, content8<br>';
preg_match_all('#\d+\.\x20?([^,]+),\x20?([^<]+)#', $str, $matches);
for($i = 0; $i < count($matches[0]); $i++){
echo $matches[1][$i] . ' ' . $matches[2][$i] . '<br />';
}
Output:
content1 content2
content3 content4
content5 content6
content7 content8
Within the pattern, a space is optional (\x20?) just to leave some flexibility. Granted, without knowing what that content actually is, this pattern may / may not suffice.
EDIT:
If you want a slightly simpler pattern, this starts looking from a period, must require one (and only one space - this time listed as a literal space as opposed to \x20):
preg_match_all('#\. ([^,]+), ([^<]+)#', $str, $matches);