包含在,C#中的字符串的正则表达式

我试图通过使用以下正则表达式将所有字符串包含在中:

Regex regex = new Regex(@"\<(?\S+)\>", RegexOptions.IgnoreCase); string name = e.Match.Groups["name"].Value; 

但在某些情况下,我有这样的文字:

   

它返回两个字符串而不是四个字符串,即高于Regex输出

  //as one string and  //as second string 

我在哪里期待四个字符串:

     

你能否指导我对我的正则表达式做出哪些改变?

我尝试添加’\ b’来指定单词边界

 new Regex(@"\b\<(?\S+)\>\b", RegexOptions.IgnoreCase); 

,但这没有帮助。

通过使用正则表达式/<([^>]*)>/您将获得所需的大部分内容。 (无需转义尖括号,因为尖括号在大多数正则表达式引擎中都不是特殊字符,包括.NET引擎。)我提供的正则表达式还将捕获尾随空格和标记上的任何属性 – 可靠地解析这些内容是方式,超出合理正则表达式的范围。

但是,请注意,如果您尝试使用正则表达式解析XML / HTML, 那就是疯狂

正则表达式是解析XML的错误工具。 尝试使用System.Xml.LinqXElement )API。

你的正则表达式使用\ S +作为通配符。 在英语中,这是“一系列一个或多个字符,其中没有一个是非空格”。 换句话说,当正则表达式<(?\S+)>应用于此字符串:’`时,正则表达式将匹配整个字符串。 尖括号是非空格。

我想你想要的是“一系列一个或多个角色,其中没有一个是尖括号”。

正则表达式是<(?[^>]+)>

啊,正则表达式。 设计看起来像卡通咒骂的语言。