我有一个正则表达式......
internal static readonly Regex _parseSelector = new Regex(@"
(?<tag>" + _namePattern + @")?
(?:\.(?<class>" + _namePattern + @"))*
(?:\#(?<id>" + _namePattern + @"))*
(?<attr>\[\s*
(?<name>" + _namePattern + @")\s*
(?:
(?<op>[|*~$!^%<>]?=|[<>])\s*
(?<quote>['""]?)
(?<value>.*?)
(?<!\\)\k<quote>\s*
)?
\])*
(?::(?<pseudo>" + _namePattern + @"))*
", RegexOptions.IgnorePatternWhitespace);
Run Code Online (Sandbox Code Playgroud)
为此我抓住了匹配对象......
var m = _parseSelector.Match("tag.class1.class2#id[attr1=val1][attr2=\"val2\"][attr3]:pseudo");
Run Code Online (Sandbox Code Playgroud)
现在有办法做类似的事m.Group["attr"]["name"]吗?或者以某种方式获取attr组内的组?
组名不嵌套在正则表达式中 - 它是一个扁平结构.你可以使用这个:
m.Group["name"]
Run Code Online (Sandbox Code Playgroud)