我的文件名为ART-123456-123_GIT.tif


^[^-]+-([^_]+).*-此正则表达式将输出作为ART-123456
^[^-]+-([^-]+).*-此正则表达式将输出作为123456
^[^-]+-[^-]+-([^_]+).*-输出为123
[^_]+.([^.]+).*-输出为GIT


我想编写一个正则表达式模式来提取所有这四个输出

我尝试了以下方式

(^[^-]+-([^_]+).*)(^[^-]+-([^-]+).*)(^[^-]+-[^-]+-([^_]+).*)([^_]+.([^.]+).*)


然后将输出作为group(0)group(1),但显示错误。我该如何实现?

我想在不同的捕获组中捕获所有ART-123456,123456、123,GIT。

最佳答案

您可以使用以下表达式:

^([^-]+-([^-]+))-([^_]+)_([^.]+)


捕获的组:

Group 1.    0-10    `ART-123456`
Group 2.    4-10    `123456`
Group 3.    11-14   `123`
Group 4.    15-18   `GIT`


您可以尝试here

关于java - 如何从Java中的相同正则表达式模式获取多个答案,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51908756/

10-09 05:02