public static List<Operator> oprs = new List<Operator>(); private List<String> GetTokens(String s) { StringBuilder sb = new StringBuilder(); sb.Append(Pattern.quote(oprs[0].symbol)); for (int i = 1; i < oprs.Count; i++) { sb.Append("|"); sb.Append(Pattern.quote(oprs.get(i).symbol)); } sb.Append("|[a-zA-Z_]+[a-zA-Z0-9_]*\\([^()]*\\)|[0-9]+|[a-zA-Z_][a-zA-Z0-9_]*|\\Q(\\E|\\Q)\\E"); List<String> tokens = new List<String>(); Pattern p = Pattern.compile(sb.ToString()); Matcher m = p.matcher(s); while (m.find()) tokens.add(m.group()); return tokens; }
public static List<operator> oprs = new List<operator>(); private List<string> GetTokens(String s) { Dictionary<string,> dictionary = new Dictionary<string,>() { {source, " " } }; var matches = dictionary.SelectMany(a => Regex.Matches(s, a.Value) .Cast<match>() .Select(b=> new { Index = b.Index, Value = b.Value, Token = a.Key })) .OrderBy(a => a.Value).ToList(); List<string> tokens = new List<string>(); foreach(var items in matches) { tokens.Add(items.Value.ToString()); } return tokens; }
private List GetTokens(String s) { List tokens = new List(); Regex rx = new Regex(@"|[a-zA-Z_]+[a-zA-Z0-9_]*\\([^()]*\\)|[0-9]+|[a-zA-Z_][a-zA-Z0-9_]*|\\Q(\\E|\\Q)\\E"); MatchCollection matches = rx.Matches(s); if (matches.Count > 0) { Match match = matches[0]; GroupCollection groupCollection = match.Groups; } foreach(var ma in matches) { tokens.Add(ma.ToString()); } return tokens; }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)