java如何使用正则替换复杂情况的内容

大佬,遇到一个问题

我想用java代码替换一段html的内容 [第*******>1<*********页】

我想把中间的数字1替换为2.,这里面的*号是指任意长度的任意字符。其他为固定内容,一般情况下*代表的内容都是html相关的style内容。

我希望能使用正则,体现出我上面写的这种格式,并替换其中的数字部分,保留其他的部分。之前考虑直接把【>1<】替换成【>2<】这种办法,但我认为不保险。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Example {
    public static void main(String[] args) {
        final String regex = "\\[第.*?>(\\d)<.*页\\]";
        final String string = "[第*******>1<*********页]";
        
        final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
        final Matcher matcher = pattern.matcher(string);
        
        while (matcher.find()) {
            System.out.println("Full match: " + matcher.group(0));
            
            for (int i = 1; i <= matcher.groupCount(); i++) {
                System.out.println("Group " + i + ": " + matcher.group(i));
            }
        }
    }
}

你试试这个,给你推荐个写正则的网站

https://regex101.com/