Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正则表达式用基于特殊字符的新行替换字符串_Java_Regex Lookarounds - Fatal编程技术网

Java 正则表达式用基于特殊字符的新行替换字符串

Java 正则表达式用基于特殊字符的新行替换字符串,java,regex-lookarounds,Java,Regex Lookarounds,我正在尝试用新行替换所有出现的特殊字符,除非有?字符前面的字符。输入字符串为 HJK'ABCP?'QR2'SER'并希望输出为 HJK' ABCP?'QR2' SER' 代码: 问题是特殊字符可能会有所不同,并且必须用新行替换(如果前面的是EXPT,则除外?) str.replaceAll(“(?)? 不适用于所有情况。例如,当角色为*或[ 有人能告诉我出了什么问题吗?你需要引用字符:模式。引用(字符)。你也应该引用替换字符。我不会使用正则表达式。只需在StringBuilder中构建它,循环

我正在尝试用新行替换所有出现的特殊字符,除非有?字符前面的字符。输入字符串为 HJK'ABCP?'QR2'SER'并希望输出为

HJK'
ABCP?'QR2'
SER'
代码:

问题是特殊字符可能会有所不同,并且必须用新行替换(如果前面的是EXPT,则除外?)

str.replaceAll(“(?)? 不适用于所有情况。例如,当角色为*或[


有人能告诉我出了什么问题吗?

你需要引用字符:
模式。引用(字符)
。你也应该引用替换字符。我不会使用正则表达式。只需在
StringBuilder
中构建它,循环输入中的字符。可能的重复是另一个问题。不是重复
        String character="'";
        String str="HJK'ABCP?'QR2'SER'";
        str=str.replaceAll("(?<!\\?)"+character, character+"\r\n");
        System.out.println(str);
HJK'
ABCP?'QR2'
SER'