Вы слишком усложняете регулярное выражение, чтобы заменить "PATH_VARIABLE" на. Это может быть просто [^/]*
- каждый символ, который не является /
.
y = y.replaceAll("PATH_VARIABLE", "[^/]*");
y1 = y1.replaceAll("PATH_VARIABLE", "[^/]*");
Однако, это будет работать только в том случае, если остальная часть вашего пути не содержит символов, которые имеют специальные значения в регулярном выражении. В конкретном случае, который вы показали, у него нет таких символов.
Если ваш путь содержит подобные символы, вам нужно обернуть все, кроме PATH_VARIABLE
в \Q
и \E
, чтобы они трактовались буквально.
Например, /person+hello/PATH_VARIABLE/address/PATH_VARIABLE
должен был бы стать таким первым:
\Q/person+hello/\EPATH_VARIABLE\Q/address/\EPATH_VARIABLE
и затем вы можете заменить PATH_VARIABLE
с.
Вы можете добавить \Q
и \E
, найдя начальный и конечный индексы всех PATH_VARIABLE
с и вставив их в.