CSharpUML.VSParser.ExtractTags C# (CSharp) Метод

ExtractTags() публичный статический Метод

public static ExtractTags ( string &content ) : CSharpUML.Tag[]
content string
Результат CSharpUML.Tag[]
        public static Tag[] ExtractTags(ref string content, params string[] tagnames)
        {
            List<Tag> tags = new List<Tag> ();
            foreach (string tagname in tagnames) {
                MatchCollection matches = Regex.Matches (content, @"([<]" + tagname + @" )([^>]*?)( /[>])");

                foreach (Match match in matches) {
                    string tagcontent = match.Groups [1].Value + match.Groups [2].Value + match.Groups [3].Value;
                    content.Replace (tagcontent, "");
                    tags.Add (new Tag (tagname: tagname, content: tagcontent));
                }

                matches = Regex.Matches (content, @"([<]" + tagname + @"[ >])([^>]*?" + "[\"=]" + @">.*?)([<]/" + tagname + @"[>])");
                Console.WriteLine ("match: " + @"([<]" + tagname + @"[ >])(.*?)([<]/" + tagname + @"[>])");
                Console.WriteLine ("matches: " + matches.Count);

                foreach (Match match in matches) {
                    string tagcontent = match.Groups [1].Value + match.Groups [2].Value + match.Groups [3].Value;
                    content.Replace (tagcontent, "");
                    tags.Add (new Tag (tagname: tagname, content: tagcontent));
                }
            }
            return tags.ToArray ();
        }

Usage Example

Пример #1
0
        public UmlEnum(Tag tag)
            : base(tag)
        {
            name = tag.Params ["name"];

            tag.Content = tag.Content.Replace(" = ", "=");
            Tag[] literalTags = VSParser.ExtractTags(ref tag.Content, "enumerationLiteral");

            List <string> literals = new List <string> ();

            foreach (Tag literalTag in literalTags)
            {
                if (literalTag.Params.ContainsKey("name"))
                {
                    literals.Add(literalTag.Params ["name"]);
                }
                else
                {
                    Console.WriteLine("weird: " + literalTag.Content);
                }
            }
            values = literals.ToArray();

            commentsKey = Comments.Key(name);
            Packages.AddToCurrentPackage(name);
        }
All Usage Examples Of CSharpUML.VSParser::ExtractTags