鉴于:
var input = "test <123>";
Regex.Matches(input, "<.*?>");
Run Code Online (Sandbox Code Playgroud)
结果:
<123>
Run Code Online (Sandbox Code Playgroud)
给我我想要的结果,但包括尖括号.哪个好,因为我可以轻松地进行搜索和替换.我只是想知道是否有办法在表达式中包含它?
您需要使用捕获组:
var input = "test <123>";
var results = Regex.Matches(input, "<(.*?)>")
.Cast<Match>()
.Select(m => m.Groups[1].Value)
.ToList();
Run Code Online (Sandbox Code Playgroud)
可以m.Groups[1].Value
让您获取捕获组 #1 值。
更好、更高效的正则表达式可以是<([^>]*)>
(它匹配<
,然后匹配并捕获>
到第 1 组中除然后仅匹配之外的任何零个或多个字符>
)。请参阅正则表达式演示: