如何在java中从同一个正则表达式模式获得多个答案
我的文件名为如何在java中从同一个正则表达式模式获得多个答案,java,regex,Java,Regex,我的文件名为ART-123456-123_GIT.tif ^[^-]+-([^]+).-此正则表达式以ART-123456 ^[^-]+-([^-]+).-此正则表达式以123456 ^[^-]+-[^-]+-([^(]+).-这将输出为123 [^.]+。([^.]+).-这将输出为GIT 我想编写一个正则表达式模式来提取所有这4个输出 我试着用下面的方法 (^[^-]+-([^_]+).*)(^[^-]+-([^-]+).*)(^[^-]+-[^-]+-([^_]+).*)([^_]+.
ART-123456-123_GIT.tif
-此正则表达式以^[^-]+-([^]+).
ART-123456
-此正则表达式以^[^-]+-([^-]+).
123456
-这将输出为^[^-]+-[^-]+-([^(]+).
123
-这将输出为[^.]+。([^.]+).
GIT
(^[^-]+-([^_]+).*)(^[^-]+-([^-]+).*)(^[^-]+-[^-]+-([^_]+).*)([^_]+.([^.]+).*)
然后以组(0)组(1)的形式获取输出,但显示错误。我怎样才能做到这一点
我想将ART-123456123、GIT全部四个捕获到不同的捕获组中。您可以使用以下表达式:
^([^-]+-([^-]+))-([^_]+)_([^.]+)
捕获的组:
Group 1. 0-10 `ART-123456`
Group 2. 4-10 `123456`
Group 3. 11-14 `123`
Group 4. 15-18 `GIT`
您可以试试。您可以使用以下表达式:
^([^-]+-([^-]+))-([^_]+)_([^.]+)
捕获的组:
Group 1. 0-10 `ART-123456`
Group 2. 4-10 `123456`
Group 3. 11-14 `123`
Group 4. 15-18 `GIT`
您可以试试。您需要更精确地确定可接受的名称格式。例如,
[A-Z]+-\d{6}-\d{3}{[A-Z]{3}.[A-Z]{3}
应与当前文件名匹配,如果需要,可以添加组以捕获文件的特定部分。但我不确定这是否是匹配所有可能文件名的格式。请澄清您希望在捕获组中捕获的内容。我希望捕获ART-123456123,GIT捕获组中的所有四个在一个捕获组中还是在四个不同的捕获组中?在四个不同的捕获组中,您需要更精确地了解可接受的名称格式。例如,[A-Z]+-\d{6}-\d{3}{[A-Z]{3}.[A-Z]{3}
应与当前文件名匹配,如果需要,可以添加组以捕获文件的特定部分。但我不确定这是否是匹配所有可能文件名的格式。请澄清您希望在捕获组中捕获的内容。我希望在一个捕获组中捕获ART-123456123、GIT捕获组中的所有四个,或者在四个不同的捕获组中捕获?在四个不同的捕获组中