Question: I've found a lot of examples of how to **check** something using regex, or how to split text using regular expressions.

But how can I extract words out of a string ?

Example:

```
aaaa 12312 <asdad> 12334 </asdad>

```

Lets say I have something like this, and I want to extract all the numbers [0-9]\* and put them in a list.

Or if I have 2 different kind of elements:

```
aaaa 1234 ...... 1234 ::::: asgsgd

```

And I want to `choose digits that come after .....` and `words that come after ::::::`

Can I extract these strings in a single regex ?

Answer: 
In the general case, you can do this using capturing parentheses:

```
string input = "aaaa 1234 ...... 1234 ::::: asgsgd";
string regex = @"\.\.\.\. (\d+) ::::: (\w+)";
Match m = Regex.Match(input, regex);

if (m.Success) {
    int numberAfterDots = int.Parse(m.Groups[1].Value);
    string wordAfterColons = m.Groups[2].Value;
    // ... Do something with these values
}

```

But the first part you asked (extract all the numbers) is a bit easier:

```
string input = "aaaa 1234 ...... 1234 ::::: asgsgd";
var numbers = Regex.Matches(input, @"\d+")
                   .Cast<Match>()
                   .Select(m => int.Parse(m.Value))
                   .ToList();

```

Now `numbers` will be a list of integers.
Something like this will do nicely!

```
var text = "aaaa 12312 <asdad> 12334 </asdad>";
var matches = Regex.Matches(text, @"\w+");

var arrayOfMatched = matches.Cast<Match>().Select(m => m.Value).ToArray();

Console.WriteLine(string.Join(", ", arrayOfMatched));

```

\w+ Matches consecutive word characters. Then we just selected the values out of the list of matches and turn them into an array.