1
0
mirror of https://github.com/chylex/TweetDuck.git synced 2025-05-17 11:34:09 +02:00
TweetDuck/Core/Utils/CommandLineArgsParser.cs
2016-08-10 14:46:24 +02:00

46 lines
1.3 KiB
C#

using System.Collections.Generic;
using System.Text.RegularExpressions;
namespace TweetDck.Core.Utils{
static class CommandLineArgsParser{
private static Regex splitRegex;
private static Regex SplitRegex{
get{
return splitRegex ?? (splitRegex = new Regex(@"([^=\s]+(?:=(?:""[^""]*?""|[^ ]*))?)",RegexOptions.Compiled));
}
}
public static int AddToDictionary(string args, IDictionary<string,string> dictionary){
if (string.IsNullOrWhiteSpace(args)){
return 0;
}
int count = 0;
foreach(Match match in SplitRegex.Matches(args)){
string matchValue = match.Value;
int indexEquals = matchValue.IndexOf('=');
string key, value;
if (indexEquals == -1){
key = matchValue.TrimStart('-');
value = "1";
}
else{
key = matchValue.Substring(0,indexEquals).TrimStart('-');
value = matchValue.Substring(indexEquals+1).Trim('"');
}
if (key != string.Empty){
dictionary[key] = value;
++count;
}
}
return count;
}
}
}