将未知字符替换为新行

时间:2018-06-14 05:40:19

标签: java regex replace

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

Joe = 544
Sam = 43
Jenny = 126

我必须用新值替换Sam和他的值,或者完全删除到新行的行,这样我才能重新编写他的值。我宁愿更换。

我找到了一些关于如何松散地做两件事的好资源,但我不知道如何将它完全应用到我的问题中。

我不知道正则表达式的界限,但我想可以在不使用Split的情况下做到这一点?我对Regex没有多少经验,语法对我来说真的很混乱。

我在伪代码中想的是:

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

2 个答案:

答案 0 :(得分:0)

我认为你可以这样做:

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

Demo

Sam =之前的内容是换行符字符串的开头时(对于Sam可能首先出现的情况),这会替换Sam后跟一些数字)。

答案 1 :(得分:0)

这将为Sam添加新值。

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

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