假设:
var input = "test <123>";
Regex.Matches(input, "<.*?>");
结果:
<123>
给我我想要的结果,但包括尖括号。哪个好,因为我可以轻松地进行搜索和替换。我只是想知道是否有办法在表达式中包含它?
答案 0 :(得分:4)
您需要使用捕获组:
var input = "test <123>";
var results = Regex.Matches(input, "<(.*?)>")
.Cast<Match>()
.Select(m => m.Groups[1].Value)
.ToList();
m.Groups[1].Value
可让您获得捕获组#1值。
更好,更高效的正则表达式可以是<([^>]*)>
(它匹配<
,然后将捕获匹配到组1中除{{1}以外的任何零个或多个字符然后只匹配>
)。请参阅regex demo: