Вам не нужно экранировать /
в регулярном выражении Java, поскольку у них нет разделителей, но если вы сделаете это, строка PHP (без разделителей) на самом деле верна. Таким образом, вы можете использовать это непосредственно, то есть
String pattern = "^docker-pullable:\\/\\/docker-registry.default.svc:5000\\/(.*)\\/(.*)@(.*)$";
или удалить экранирующее
String pattern = "^docker-pullable://docker-registry.default.svc:5000/(.*)/(.*)@(.*)$";
В любом случае вывод от печати n1
до n3
равен
project-d
mo
sha256:ed651abfd1f67130ace2b7b3a3h6hdjzpms230fee8f55b16677c4785fad88021
Обратите внимание, что, как указал @FedericoklezCulloca, вы должны действительно экранировать .
s в docker-registry.default.svc
в шаблоне, чтобы убедиться, что они соответствуют .
, а не любому символу, например
String pattern = "^docker-pullable://docker-registry\\.default\\.svc:5000/(.*)/(.*)@(.*)$";