Java 正则表达式替换但保留字符串的一部分

Java 正则表达式替换但保留字符串的一部分,java,regex,Java,Regex,所以,如果我想用f来替换字符串中的b[这里的任何东西],我该怎么做呢?例子: 什么是使foobarfoo变成foofarfoo,foobanfoo变成foofanfoo的正则表达式?这里的基本原则是“捕获组”: 将感兴趣的部分放在正则表达式的括号内。然后可以通过方法中或通过方法中的组号引用它。我在这里找到了一篇很好的文章,其中包含教程,如果您知道要替换的字符及其在字符串中的位置,从我所看到的情况来看,这应该不会太复杂。是否有一些额外的限制,您没有透露,还是你根本没想过用“f”来代替“b”?正确地

所以,如果我想用f来替换字符串中的b[这里的任何东西],我该怎么做呢?例子:
什么是使foobarfoo变成foofarfoo,foobanfoo变成foofanfoo的正则表达式?

这里的基本原则是“捕获组”:


将感兴趣的部分放在正则表达式的括号内。然后可以通过方法中或通过方法中的组号引用它。

我在这里找到了一篇很好的文章,其中包含教程,如果您知道要替换的字符及其在字符串中的位置,从我所看到的情况来看,这应该不会太复杂。是否有一些额外的限制,您没有透露,还是你根本没想过用“f”来代替“b”?正确地说,正则表达式只匹配字符串;替换不是正则表达式的功能。谢谢。。。这会匹配任意长度的序列,还是只匹配2个字符?澄清一下,这会将“foobarfoo”变成“foofarfoo”,对吗?@Tj3如果您想要任何长度,我相信您会想要
“(.*)”
<代码>“(..”将恰好匹配两个字符。@Tj3我的正则表达式将恰好匹配两个字符;您可以根据需要修改它,只需保留括号即可。我只是想根据你精心设计的例子提供一个具体的例子。这样做:
“Hello ab Hello ad”.replaceAll(“a([abcABC]),“b$1”)会给出“你好bb你好广告”对吗?
String output = input.replaceAll("foob(..)foo", "foof$1foo");