首页 > 编程语言 >java文本获取

java文本获取

时间:2023-03-19 18:33:33浏览次数:38  
标签:zLen java String text replace 获取 文本 left

 

使用正则方式提取文本中间内容

获取文本中间(单次)

参数1:文本

参数2:文本前

参数3:文本后

返回一个String

 public static String getSubString(String text, String left, String right) {

        String result = "";

        int zLen;

        if (left == null || left.isEmpty()) {

            zLen = 0;

        } else {

            zLen = text.indexOf(left);

            if (zLen > -1) {

                zLen += left.length();

            } else {

                zLen = 0;

            }

        }

        int yLen = text.indexOf(right, zLen);

        if (yLen < 0 || right == null || right.isEmpty()) {

            yLen = text.length();

        }

        result = text.substring(zLen, yLen);

        return result;

    }

 

批量获取文本中间

参数1:文本

参数2:文本前

参数3:文本后

返回一个String列表

//    批量获取中间文本
    public static List<String> GetSubTextList(String sourceText,String frontIdentificationText,
                                                                 String subsequentIdentificationText) {
        ArrayList<String> list = new ArrayList<>();

        Pattern pattern = Pattern.compile(escapeMetacharacter(frontIdentificationText) + "([\\s\\S]*?)" +
                escapeMetacharacter(subsequentIdentificationText), Pattern.DOTALL);
        Matcher m = pattern.matcher(sourceText);

        while (m.find()) {
            String group = m.group(1);
            list.add(group);
        }

        return list;
    }

//    正则替换
    public static String escapeMetacharacter(String text) {
        return text.replace("?","\\?").replace("*", "\\*").replace("+", "\\+")
                .replace("[", "\\[").replace("]", "\\]").replace("(", "\\(")
                .replace(")", "\\)").replace("{", "\\{").replace("}", "\\}");
    }

 

标签:zLen,java,String,text,replace,获取,文本,left
From: https://www.cnblogs.com/Hello233/p/17233890.html

相关文章

  • 【JavaScript】50_终篇_编程进阶与BOM编程概览(3k字+)
    12、节点的复制使用cloneNode()方法对节点进行复制时,它会复制节点的所有特点包括各种属性这个方法默认只会复制当前节点,而不会复制节点的子节点可以传递一个true作为参数,......
  • Java多线程开发CompletableFuture的应用
    ​做Java编程,难免会遇到多线程的开发,但是JDK8这个CompletableFuture类很多开发者目前还没听说过,但是这个类实在是太好用了,了解它的一些用法后相信你会对它爱不释手(呸渣男,......
  • java的数据类型
    2023-03-19java是强类型语言要求变量的使用严格符合规定,所有的变量需要先定义、后才能使用java的数据类型分为两大类1、基本类型 2、引用类型引用数据类型包括类......
  • 【Android】使用MediaExtractor获取关键帧的时间戳
    1前言使用MediaExtractor、MediaMuxer去掉视频文件中的音频数据中介绍了MediaExtractor类的主要方法,本文主要将使用其advance()和seekTo(timeUs,mode)方法遍......
  • 如果获取VBA数组的维数
    如何用VBA代码获得数组具有多少维数使用以下自定义函数即可:PublicFunctionNumberOfDimensions(ByRefarrRefAsVariant)AsIntegerDimDimCountAsByte,j%......
  • 关于java.lang.ThreadDeath线程发生场景及模拟代码测试
    当调用stop()方法时会发生两件事:1.即刻停止run()方法中剩余的全部工作,包括在catch或finally语句中,并抛出ThreadDeath异常(通常情况下此异常不需要显示的捕获),因此可能会导......
  • java——Zookeeper学习——zk实现分布式锁了解
                   ......
  • Java基础字符串练习
    ​定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果。要求:1、如果传递的参数为空,返回null2、如果传递的数组元素个数为0......
  • 【Java】Allatori代码加密
    一般来说我们在写Java程序时都会使用Maven(或Gradle)做依赖集成。这过程中Maven(或Gradle)作为编译黑盒,输入源码而输出字节码。但我们也知道Java程序是可以通过反编译工具看到源......
  • java——Zookeeper学习——入门学习
    学习之前看了2个B站教程:   1、千峰:https://www.bilibili.com/video/BV1Ph411n7Ep/?vd_source=79bbd5b76bfd74c2ef1501653cee29d6   2、黑马:https://www.bili......