mirror of
https://github.com/chylex/TweetDuck.git
synced 2025-04-28 09:15:46 +02:00
46 lines
1.3 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|