using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"(?<=^|[\n;](?:[\t ]*(?:\w+ )?)?)export(?:(?:\s+(?<type>type)\s*)|\s*)(?<exports>{[\w\t\n\r ""$'*,./{}-]+?})(?=;?[\t\n;]*?(?!(?:\n*\/\/)|(?:\n*\/\*)|(?:\s*from.*?)))";
string input = @"export { name1, /* */ nameN };
export { variable1 as name1, variable2 as name2, /* */ nameN };
export { variable1 as ""string name"" };
export { name1 as default /*, */ };
export type { CompilerOptionsJson as default };
export { default }
export {
DEFAULTS,
plugin as default,
type Options
}
export type { Config, Result }
export type { default as Options }
export { default } from './make'
export {
DEFAULTS,
plugin as default,
type Options
} from './plugin'
export type { Config, Result } from './interfaces'
export type { default as Options } from './options'
var g;export{name1};export{name1}
var g;export{name1}; export{name1}
export { name1, /* */ nameN }
export { import1 as "", import2 as name2, /* */ nameN }
export { default, /* */ }
declare module 'module-name' {
export {
DEFAULTS,
plugin as default,
type Options
}
export type { Config, Result }
export type { default as Options }
}
export { default } from './make'
export {
DEFAULTS,
plugin as default,
type Options
} from './plugin'
export type { Config, Result } from './interfaces'
export type { default as Options } from './options'
// export { default }
// export type { default as Statement }
/**
* @example
* export { default }
* export { Config, Result }
* export type { default as Options }
*/
export { default, /* */ }";
foreach (Match m in Regex.Matches(input, pattern))
{
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