.Chaos 2021-04-09 17:35 采纳率: 100%
浏览 28
已采纳

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

大佬,遇到一个问题

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

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

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

  • 写回答

1条回答 默认 最新

  • jumper17 2021-04-09 19:52
    关注
    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/

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 易康econgnition精度验证
  • ¥15 线程问题判断多次进入
  • ¥15 msix packaging tool打包问题
  • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致