Alex, this regex will do it:
(?sm)^\d+\.\d+\s*-\s*((?:.(?!^\d+\.\d+))*)
This is assuming that you want to capture the point, without the numbers, for instance: just Hello
If you want to also capture the digits, for instance 1.1 - Hello, you can use the same regex and display the entire match, not just Group 1. The online demo below will show you both.
How does it work?
- The idea is to capture the text you want to Group 1 using (parentheses).
- We match in multi-line mode mto allow the anchor^to work on each line.
- We match in dotall mode sto allow the dot to eat up strings on multiple lines
- We use a negative lookahead (?!to stop eating characters when what follows is the beginning of the line with your digit marker
Here is full working code and an online demo.
using System;
using System.Text.RegularExpressions;
using System.Collections.Specialized;
class Program {
static void Main() {
string yourstring = @"1.1 - Hello
1.2 - world!
2.1 - Some
data
here and it contains some 32 digits so i cannot use \D+
2.2 - Etc..";
var resultList = new StringCollection();
try {
    var yourRegex = new Regex(@"(?sm)^\d+\.\d+\s*-\s*((?:.(?!^\d+\.\d+))*)");
    Match matchResult = yourRegex.Match(yourstring);
    while (matchResult.Success) {
        resultList.Add(matchResult.Groups[1].Value);
    Console.WriteLine("Whole Match: " + matchResult.Value);
    Console.WriteLine("Group 1: " + matchResult.Groups[1].Value + "\n");
        matchResult = matchResult.NextMatch();
    } 
} catch (ArgumentException ex) {
    // Syntax error in the regular expression
}
Console.WriteLine("\nPress Any Key to Exit.");
Console.ReadKey();
} // END Main
} // END Program