Java 将未知字符替换为新行

Java 将未知字符替换为新行,java,regex,replace,Java,Regex,Replace,我有一个包含不同值列表的字符串,如下所示: Joe = 544 Sam = 43 Jenny = 126 我必须用一个新值替换Sam和他的值,或者完全删除新行的行,这样我可以再次重写他的值。我想换一个 我已经找到了一些很好的资源,介绍如何轻松地做到这两个方面,但我不知道如何将其应用到我的问题中 我不知道正则表达式的边界,但我想不使用拆分就可以做到这一点?我对正则表达式没有太多经验,语法对我来说真的很混乱 我在想伪代码,比如: String.replaceAll("Sam = ?*\n", "S

我有一个包含不同值列表的字符串,如下所示:

Joe = 544
Sam = 43
Jenny = 126
我必须用一个新值替换Sam和他的值,或者完全删除新行的行,这样我可以再次重写他的值。我想换一个

我已经找到了一些很好的资源,介绍如何轻松地做到这两个方面,但我不知道如何将其应用到我的问题中

我不知道正则表达式的边界,但我想不使用拆分就可以做到这一点?我对正则表达式没有太多经验,语法对我来说真的很混乱

我在想伪代码,比如:

String.replaceAll("Sam = ?*\n", "Sam = 83\n");

我想你可以这样做:

String names = "Joe = 544\nSam = 43\nJenny = 126";
names = names.replaceAll("(?<=^|\\n)Sam = \\d+", "Sam = 83");
String name=“Joe=544\nSam=43\nJenny=126”;

names=names.replaceAll(“(?这将为Sam添加一个新值

text.replaceAll("Sam = .*\n", "Sam = 123\n");

正则表达式解释:.*匹配出现在“Sam=”之后的任何字符,并将其包含在匹配中,然后替换以“Sam=…”开头的整个字符串。

对于正则表达式,您需要使用replaceAll(),而不仅仅是replace()。非常感谢。看起来这会起作用。我肯定会保留这个,我能想到很多项目可能需要我再做一次。@Robby:给新来者的建议:如果答案解决了你的问题,请单击大复选标记接受它(✓) 在它旁边,也可以选择向上投票(向上投票要求至少15个信誉点)。如果您发现其他答案有帮助,请向上投票。接受和向上投票有助于未来的读者。请参阅[相关帮助中心文章][1][1]:@Allan我本来想问的,但我讨厌卑躬屈膝地要求分数,理想情况下我们不应该这样做。但是,留下许多悬而未决的好问题对未来的任何人都没有帮助。这不会起作用,至少在目前的形式下()。谢谢你的建议。这肯定对我也有帮助。事实上,我需要它来处理字符串,而不仅仅是数字,但在你的帮助下,我还可以通过执行。*+,从Tim的答案改为这样做,Tim是对的,尽管它目前的形式不起作用。这对我来说是有效的:name=name.replaceAll(“(?TimBiegeleisen接球不错-我修正了打字错误。