I'm trying to use RegEx to split a string into several objects. Each record is separated by a :, and each field is separated by a ~.

So sample data would look like:

```
:1~Name1:2~Name2:3~Name3

```

The RegEx I have so far is

```
:(?<id>\d+)~(?<name>.+)

```

This however will only match the first record, when really I would expect 3. How do I get the RegEx to return all matches rather than just the first?