正则表达式用于替换冒号后的正斜杠

时间:2015-03-04 17:23:54

标签: java regex

我正在查看以下

的java正则表达式

输入:pqr/abc:/xyz/gef/lmn mno/def:/abc/def/ghi
输出:pqr/abc:\\/xyz\\/gef\\/lmn mno/def:\\/abc\\/def\\/ghi

所以基本上我们需要将文本替换为冒号(:)的文本,其中包含"正斜杠"与\\/,即逃避正斜杠

1 个答案:

答案 0 :(得分:1)

您需要按顺序使用\G锚来进行连续的字符串匹配。锚\G匹配上一个匹配结束的位置。详细了解here\G锚点。

String r = "pqr/abc:/xyz/gef/lmn mno/def:/abc/def/ghi";
System.out.println(r.replaceAll("((?::|(?<!^)\\G)[^/\\s]*)(/)", "$1\\\\\\\\$2"));

<强>输出:

pqr/abc:\\/xyz\\/gef\\/lmn mno/def:\\/abc\\/def\\/ghi

DEMO