有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

正则表达式匹配中的java问号无效

我不熟悉正则表达式。我原以为这会返回matched succesfully,但事实并非如此。为什么会这样

String myString = "SUB_HEADER5_LABEL";
if (myString.matches(Pattern.quote("SUB_HEADER?_LABEL")))
{
    System.out.println("matched succesfully");
}

共 (1) 个答案

  1. # 1 楼答案

    Pattern.qoute()将创建一个模式,该模式仅与给定字符串完全匹配。你需要

    if (myString.matches("SUB_HEADER\\d_LABEL"))
    

    如果您希望数字超过9,请添加+量词,如

    if (myString.matches("SUB_HEADER\\d+_LABEL"))
    

    如果你想匹配一个有?的数字(在你的例子中,它意味着一或零R,因为它是一个量词)。您需要将其替换为[0-9]\\d