用正则表达式替换两个符号之间的文本

Replace text between two symbols with regex

这应该很简单,但我不知道正则表达式...我在这里看到过很多类似的问题,但 none 正好解决了我想要的问题。 我有这个字符串:

String s = "randomStuff§dog€randomStuff"; //randomStuff is random letters and numbers, it's not a word

我想用鸟替换狗(它并不总是狗,不要将它包含在正则表达式中),所以输出应该是:

String s = "randomStuff§bird€randomStuff";

我现在用的是

s = s.replaceAll("\§(.*?)\€", "bird");

但这也会删除 § 和 € 符号。如何保留这些符号?

尝试:

s = s.replaceAll("\§(.*?)\€", "§bird€");

您可以在您的正则表达式中使用此回顾断言:

s = s.replaceAll("(?<=§)[^€]*", "bird");

RegEx Demo