using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"^(?<exe>npm)?\ ?(?<run>(?<=\k<exe> )run(?:-script)?)?\ ?(?<command>(?<=\k<run> )[a-z]+(?:[-|:|.|_][a-z]+)?|(?<!\k<run> )[a-z]+(?:[-][a-z]+)?)?\ ?(?<pkgdetails>[a-z0-9\>\=\:\+\#\^\.\@\/][a-z0-9\>\=\:\+\#\^\~\.\@\/\-]+)?\ ?(?<options>(?:\ [-]{1,2}[a-zA-Z]+(?:[-][a-z]+)*)*)?$";
string input = @"npm install cordova-browser@~5.0.1 --production --save
npm install --no-package-lock
npm -v
npm version major
npm version minor
npm version patch
npm run build
npm run build:spypkg
npm run build-spypkg
npm run build.spypkg
npm run build_spypkg
npm run-script build:spypkg
npm run-script build-spypkg
npm run-script build.spypkg
npm run-script build_spypkg
i sots --D
i sots --production
i sots --production --no-save
install sots --production --no-save
npm install sots --production --no-save
npm install ./package.tgz
npm install https://github.com/indexzero/forever/tarball/v0.5.6
npm install sax
npm install sax -P
npm install sax -D
npm install sax -O
i
npm i
i sax
i sax -D
install
install sax -P
install sax -D
install sax -O
npm install githubname/reponame
npm install @myorg/privatepackage
npm install node-tap --save-dev
npm install dtrace-provider --save-optional
npm install readable-stream --save-exact
npm install ansi-regex --save-bundle
npm install sax@latest
npm install @myorg/mypackage@latest
npm install sax@0.1.1
npm install @myorg/privatepackage@1.5.0
npm install sax@"">=0.1.0 <0.2.0""
npm install @myorg/privatepackage@"">=0.1.0 <0.2.0""
npm install git+ssh://git@github.com:npm/cli.git#v1.0.27
npm install git+ssh://git@github.com:npm/cli#semver:^5.0
npm install git+https://isaacs@github.com/npm/cli.git
npm install git://github.com/npm/cli.git#v1.0.27
npm install mygithubuser/myproject
npm install github:mygithubuser/myproject
npm install gist:101a11beef
npm install bitbucket:mybitbucketuser/myproject
npm install gitlab:mygitlabuser/myproject
npm install gitlab:myusr/myproj#semver:^5.0
npm install sax@"">=0.1.0 <0.2.0"" bench supervisor
npm install sax --force";
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