正则表达式返回所有字符

本文关键字:字符 返回 正则表达式 | 更新日期: 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
    }

正则表达式返回所有字符

要使其成为单一匹配项,请使用(.*)

单个.匹配单个字符。 附加*表示"零或更多"。

编辑 响应有关两个匹配项的评论(第一个匹配项包含字符串,第二个匹配项是空匹配项):匹配项文档指示它对空匹配项进行了特殊处理。 该页面上有一个很好的示例来显示该行为。 但最终的结果是,比赛结束后,它不做向前移动,所以它拿起了一根空火柴。 为了防止这种情况,您可以使用行首和行尾锚点:(^.*$)或使用+强制至少包含一个字符:(.+)

由于要匹配任意数量的任意字符,请将.更改为.*以匹配零个或多个,或将.+更改为匹配一个或多个字符。