using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"@(\S+) (\S+) (\S+(?: -> \S+)*) ?((?:(?!\*\/).)*)";
string input = @"/**
* Class Object
* @package Model\Example\Objects
* @property-read int id
* @property order_id
* @property string|NULL external_order_id -> externalOrderId
* @property string order_source
* @property int order_source_id
* @property string order_source_info foo, foo, bar.
* @property int order_status_id
* @property int date_add
* @property int date_confirmed
* @property int date_in_status
* @property string user_login
* @property string phone
* @property string email
* @property array products 21 foobar*/";
RegexOptions options = RegexOptions.Multiline;
foreach (Match m in Regex.Matches(input, pattern, options))
{
Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx