正则表达式模式匹配

Rkz*_*Rkz 2 java regex string

我正在使用java正则表达式库来查找模式"String_OneOrMoreDigits".例如,"linenumber_1"或"linenumber_31"或"linenumber_456".我正在尝试以下模式,假设我将获得"linenumber_2"或"linenumber_44"类型的字符串.但是,我只是得到"linenumber_2"类型的字符串,它最后不匹配多个数字.如何匹配这些字符串?

Pattern pattern = Pattern.compile("(linenumber_[0-9])|(linenumber_[0-9][0-9])");

T.J*_*der 6

无需替换,只需使用"一个或多个"限定符[0-9]:

Pattern pattern = Pattern.compile("linenumber_[0-9]+");
Run Code Online (Sandbox Code Playgroud)

这将匹配"linenumber_1"和"linenumber_44"和"linenumber_12345984".如果你只是想匹配一个或两个数字,你可以做到这一点的是更加明确的允许的位数:

Pattern pattern = Pattern.compile("linenumber_[0-9]{1,2}");
Run Code Online (Sandbox Code Playgroud)