正则表达式返回所有字符
本文关键字:字符 返回 正则表达式 | 更新日期: 2023-09-27 18:34:27
我正在使用 (.) 来匹配所有字符,但它也返回了太多匹配项。我如何让它只有 1 场比赛?
private MatchCollection RegexMatchingV2(string data, string regex)
{
MatchCollection col = null;
try
{
col = Regex.Matches(data, regex, RegexOptions.IgnoreCase);
}
catch (Exception ex)
{
Response.Write("RegexMatching ERROR:" + ex.Message);
}
return col;
}
protected void Page_Load(object sender, EventArgs e)
{
MatchCollection col= RegexMatchingV2("return all of this data in 1 match", "(.)");
Response.Write(col.Count);//Too much matches
}
要使其成为单一匹配项,请使用(.*)
单个.
匹配单个字符。 附加*
表示"零或更多"。
编辑 响应有关两个匹配项的评论(第一个匹配项包含字符串,第二个匹配项是空匹配项):匹配项文档指示它对空匹配项进行了特殊处理。 该页面上有一个很好的示例来显示该行为。 但最终的结果是,比赛结束后,它不做向前移动,所以它拿起了一根空火柴。 为了防止这种情况,您可以使用行首和行尾锚点:(^.*$)
或使用+
强制至少包含一个字符:(.+)
。
由于要匹配任意数量的任意字符,请将.
更改为.*
以匹配零个或多个,或将.+
更改为匹配一个或多个字符。