标签: java regex
我正在查看以下
输入:pqr/abc:/xyz/gef/lmn mno/def:/abc/def/ghi 输出:pqr/abc:\\/xyz\\/gef\\/lmn mno/def:\\/abc\\/def\\/ghi
pqr/abc:/xyz/gef/lmn mno/def:/abc/def/ghi
pqr/abc:\\/xyz\\/gef\\/lmn mno/def:\\/abc\\/def\\/ghi
所以基本上我们需要将文本替换为冒号(:)的文本,其中包含"正斜杠"与\\/,即逃避正斜杠
\\/
答案 0 :(得分:1)
您需要按顺序使用\G锚来进行连续的字符串匹配。锚\G匹配上一个匹配结束的位置。详细了解here的\G锚点。
\G
String r = "pqr/abc:/xyz/gef/lmn mno/def:/abc/def/ghi"; System.out.println(r.replaceAll("((?::|(?<!^)\\G)[^/\\s]*)(/)", "$1\\\\\\\\$2"));
<强>输出:强>
DEMO