在java正则表达式中,替换为;如果存在正斜杠/后跟反斜杠\则忽略

在java正则表达式中,替换为;如果存在正斜杠/后跟反斜杠\则忽略,java,regex,Java,Regex,在使用正则表达式的Java中,我将用“.”替换\code>,但是如果我只需要一个\backward slash,就会被(双引号)替换,但是如果正斜杠(/)后跟反斜杠(\)只替换正斜杠,则保留正斜杠 input: Functions.split(input.env.companyId,\"/\\\") ouput: Functions.split(input.env.companyId,"\") 代码替换函数.replaceAll(“\\\\”,“\\”) 示例:如果只找到一个反斜杠 input

在使用正则表达式的Java中,我将用“.”替换\code>,但是如果我只需要一个
\backward slash
,就会被
(双引号)
替换,但是如果
正斜杠(/)
后跟
反斜杠(\)
只替换正斜杠,则保留正斜杠

input: Functions.split(input.env.companyId,\"/\\\")
ouput: Functions.split(input.env.companyId,"\")
代码替换函数
.replaceAll(“\\\\”,“\\”)

示例:如果只找到一个反斜杠

input:  Functions.split(input.env.companyId,\"\\\")"
output: Functions.split(input.env.companyId,""")
如果
正斜杠(/)
后跟
反斜杠(\)
仅替换正斜杠,请保持反斜杠不变

input: Functions.split(input.env.companyId,\"/\\\")
ouput: Functions.split(input.env.companyId,"\")
因此,结合这两种情况的预期输出,如何通过修改replaceAll regex模式来获得预期输出。

这个答案目前是问题的一部分。在尝试更新以适应最新版本之前,等待澄清

使用负环顾法查找不在
\
前面或后面的
\
,即在输入字符串中查找独立的
\
字符

范例


我可以问一下这里的上下文是什么吗?很多时候,当我看到这样的问题时,它是用来解析一种众所周知的数据格式,如JSON或CSV——在这种情况下,通常最好使用专门为任务编写的库。这里可能不是这样,但我认为值得检查。如果输入是文本值
。\”\\\“
”,而您仅将一个独立的
\
替换为
,则只替换第一个
\
,从而导致
..,“\\\””
,而不是您声称需要的
..,“)
。请澄清!抱歉,我已经更改了问题,我想将\替换为“但若存在正斜杠/后跟反斜杠,则替换保留的正斜杠其余部分。”is@vikram您仍然没有澄清。如果实际输入的文本值是
…,\“\\\”
(实际文本值,即Java编译器以任何形式取消转换字符串文字后的结果文本),使用4
\
和3
,您从不替换
,有时(?)将
\
替换为
,有时(?)将
//code>替换为
,否则将
\
/
单独放置,那么结果将具有相同的字符数,那么为什么您希望结果
…“)
中所有的
\
都消失了,而最后一个
以某种方式移动到
之前?这毫无意义。请澄清@vikram请注意打印的输入文本与生成该输入文本所需的
main
方法中的字符串文本之间的巨大差异。您的问题是显示输入文本和输出文本,而不是字符串文本。当你像我反复要求的那样澄清问题时,请明确文本和产生文本所需的文字之间的区别。
input:  Functions.split(input.env.companyId,\"\\\")"
output: Functions.split(input.env.companyId,""\\\")"