正则表达式匹配中的问号不起作用

时间:2012-11-22 13:30:47

标签: java regex

我是正则表达式的新手。我认为这会返回matched succesfully,但事实并非如此。为什么会这样?

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

1 个答案:

答案 0 :(得分:4)

Pattern.qoute()将创建一个仅匹配完全给定String的模式。你需要

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

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

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

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