正则表达式捕获:仅从第二组获取结果

时间:2020-01-06 02:41:30

标签: java regex pattern-matching regular-language

我有以下字符串:

'pp_3', 365]

pp_之后出现的长度可能有所不同。在,之后且在]之前的内容是我想要捕获的(且仅此)。它的长度各不相同,但始终是数字。

我想出了(?<=pp_).*,(.*)(?=])。它使3', 365完全匹配,并且在第1组中有我想要的“ 365”。我怎么只获得365的完整比赛?

如果我无法解释我的疑问,请告诉我。谢谢

1 个答案:

答案 0 :(得分:0)

尝试一下:

[^_]*_(\d*)'\s*,\s*(\-?\d+)\s*]. 

此正则表达式捕获2个组,分别对应于每个数字,第一个在pp_之后,第二个在',之后(可能为负数)。如果您不想将第一个捕获为一组,而不是(\d*),只需编写(?:\d*)

相关问题