代码之家  ›  专栏  ›  技术社区  ›  Martin

应用程序中的正则表达式返回空字符串,即使它与组规范匹配[重复]

  •  0
  • Martin  · 技术社区  · 6 年前

    假设我有下面的正则表达式,它与结尾带有分号的字符串相匹配:

    \".+\";
    

    "";
    

    我试着用这个:

    \".+?\";
    

    但那没用。

    我的问题是,我怎样才能 .+ 的一部分,可选,所以用户不必在字符串中输入任何字符?

    0 回复  |  直到 10 年前
        1
  •  12
  •   Tom Fenech    10 年前

    使 .+ 可选,您可以:

    \"(?:.+)?\";
    

    (?:..) non-capturing group . 它只执行匹配操作,不会捕获任何内容。添加 ? 在非捕获组使整个非捕获组成为可选之后。

    或者,您可以:

    \".*?\";
    

    .* 会贪婪地匹配任何字符零次或多次。添加 ? 之后 *