Java读取文本文件并替换为(&A)

Java读取文本文件并替换为(&A),java,regex,Java,Regex,我正在尝试使用java读取文本文件,试图将“character”替换为“character”,因为文本文件已经有“apos”、“lt”和“gt”。 我只想替换“with”和“skip”以及“apos”、“lt”和“gt” 我尝试使用以下正则表达式搜索正则表达式&^?!amp|载脂蛋白|引用|燃气轮机|书信电报;要列出符号(&S) 上面的正则表达式正确吗?或者我们可以用另一种方法搜索并替换&symbol和& 先谢谢你。 这是我当前的代码 File log= new File("txtfile

我正在尝试使用java读取文本文件,试图将“character”替换为“character”,因为文本文件已经有“apos”、“lt”和“gt”。 我只想替换“with”和“skip”以及“apos”、“lt”和“gt”

我尝试使用以下正则表达式搜索正则表达式&^?!amp|载脂蛋白|引用|燃气轮机|书信电报;要列出符号(&S)

上面的正则表达式正确吗?或者我们可以用另一种方法搜索并替换&symbol和&

先谢谢你。 这是我当前的代码

File log= new File("txtfileNameString.txt");
System.out.println("entering Changes &");
FileReader fr = new FileReader(log);
String s;
BufferedReader br = new BufferedReader(fr);
while ((s = br.readLine()) != null) {
       s=s.replaceAll("&(^?!((amp;)|(apos;)|(quot;)|(lt;)|(gt;))", "&");
       // do something after replace
}
br.close();

您可以使用负前瞻:

s = s.replaceAll("&(?!amp;|apos;|quot;|lt;|gt;)", "&");

您可以使用负前瞻:

s = s.replaceAll("&(?!amp;|apos;|quot;|lt;|gt;)", "&");


为什么?如果文本文件已经有XML转义,那么它可能已经是一个正确的XML文件,如果不是,则应该将其提交给它的创建者。您试图解决的真正问题是什么?我正在向现有文本文件添加一个文本块,其中包含少量xml标记。您应该使用适当的工具来完成此操作,这将为您解决此问题。为什么?如果文本文件已经有XML转义,那么它可能已经是一个正确的XML文件,如果不是,则应该将其提交给它的创建者。您试图解决的真正问题是什么?我正在向现有文本文件添加一个文本块,其中包含少量xml标记。您应该使用适当的工具来完成此操作,这将为您解决此问题。我尝试了str.replaceAll,但我没有使用上述代码。请添加一段您试图解析的文本?也许你没有;每个符号后?generateCounters=false logString=&&;text=customText&serviceThank you@Andrea您的屏幕截图帮助我丢失了s=s.replaceAll&?!amp|载脂蛋白|引用|lt|gt&(一);;啊,好吧,我理解你的怀疑。我还编辑了我的原始片段。事实上,Java中的字符串是不可变的,它们需要一个显式赋值s=s.replaceAll,用蹩脚的话来说。我尝试了str.replaceAll,但我没有使用上面的编码。请添加一段您试图解析的文本?也许你没有;每个符号后?generateCounters=false logString=&&;text=customText&serviceThank you@Andrea您的屏幕截图帮助我丢失了s=s.replaceAll&?!amp|载脂蛋白|引用|lt|gt&(一);;啊,好吧,我理解你的怀疑。我还编辑了我的原始片段。事实上,Java中的字符串是不可变的,它们需要一个显式赋值s=s.replaceAll,用蹩脚的话来说。这将取代每次出现的&。请不要只发布代码作为答案,而是包括解释您的代码的作用以及它如何解决问题。有解释的答案通常质量更高,更容易吸引选票。不,这不起作用。这将取代每次出现的&。请不要只发布代码作为答案,而是包括解释您的代码的作用以及它如何解决问题。带有解释的答案通常质量更高,更容易吸引选票。