Q:

Regex to match a string that contains at least 3 dashes / hyphens

I have an email body. It contains several lines of text. I need to extract the first occurrence of a string that: 

comes after a specific text
contains at least 3 dashes

The shape of the dashed string is unknown. It may contain letters and numbers of any number, i.e.: 
AA3A-123-NNN-D or 12-OOO-12455-AS
For example: 
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec imperdiet porta libero ac imperdiet. 
Nam enim nisl: aliquam ut feugiat vitae
Specific text after which I need to search: Etiam rhoncus AAFA-12X-DDDD-12 metus risus
More text: foo
Target language is C#.
I've tried doing something like ([A-Za-z0-9]{5}-[A-Za-z0-9]{4}-[A-Za-z0-9]{3}-[A-Za-z0-9]{5}) but as you can see here I need to set the shape of the string which is not always known.

A:

You can use a lazy quantifier with [\s\S]:
(?:Specific\ text\ after\ which\ I\ need\ to\ search:)
[\s\S]+?\K
(\b\w+-\w+-\w+-\w+\b)

The \b is a word boundary, \K deletes everything to the left from the match.
See a demo on regex101.com.

