zoukankan      html  css  js  c++  java
  • 正则表达式匹配后替换匹配内容

    需匹配的字符串:

    View Code
     PROCEDURE ACCOUNT_IMPORT
      (
        P_USER_ID         NUMBER,               --  用户ID
        P_RESP_ID         NUMBER,               -- 职责ID
        P_APP_ID          NUMBER,               -- 应用ID
        P_IN_DATA_SET     eg_ebs_account_tab, -- 输入数据集
    
     
        p_result_flag OUT VARCHAR2,             -- 导入结果标志 S成功,E是不
        p_result_text OUT VARCHAR2,             -- 导入结果信息
        p_err_tab     OUT eg_ebs_err_tab,     -- 导入日志详细信息
        p_request_id  OUT NUMBER,               -- 提交请求ID
        p_import_time OUT DATE                  -- 提交时间
      );

    匹配及替换:把后面有OUT的参数 替换成x_开头。后面没有OUT的 则不用替换。

    View Code
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    
    public class RegexTest {
        public static void main(String[] args){
            StringBuilder str = new StringBuilder();
            str.append("PROCEDURE ACCOUNT_IMPORT(\n");
            str.append("P_USER_ID         NUMBER,               --  用户ID\n");
            str.append("P_RESP_ID         NUMBER,               -- 职责ID\n");
            str.append("P_APP_ID          NUMBER,               -- 应用ID\n");
            str.append("P_IN_DATA_SET     eg_ebs_account_tab, -- 输入数据集\n");
            str.append("p_result_flag OUT VARCHAR2,             -- 导入结果标志 S成功,E是不\n");
            str.append("p_result_text OUT VARCHAR2,             -- 导入结果信息\n");
            str.append("p_err_tab     OUT eg_ebs_err_tab,     -- 导入日志详细信息\n");
            str.append("p_request_id  OUT NUMBER,               -- 提交请求ID\n");
            str.append("p_import_time OUT DATE                  -- 提交时间);");
            
            System.out.println(str.toString());
            System.out.println(str.toString().length());
            
            String pattern = "\\w*\\s*OUT";
            Pattern p = Pattern.compile(pattern,Pattern.MULTILINE);
            Matcher m = p.matcher(str.toString());
            String content = str.toString();
            while(m.find()){
                System.out.println("\n"+m.group());
                String[] splitStr = m.group().split("OUT");
                String replaceStr = "x_"+splitStr[0];
                System.out.println(splitStr[0]+"\n"+replaceStr);
                content = content.replace(m.group(), replaceStr);
            };
            System.out.println("\n"+content);
        }
    }

    输出结果:

    View Code
    PROCEDURE ACCOUNT_IMPORT(
    P_USER_ID         NUMBER,               --  用户ID
    P_RESP_ID         NUMBER,               -- 职责ID
    P_APP_ID          NUMBER,               -- 应用ID
    P_IN_DATA_SET     eg_ebs_account_tab, -- 输入数据集
    p_result_flag OUT VARCHAR2,             -- 导入结果标志 S成功,E是不
    p_result_text OUT VARCHAR2,             -- 导入结果信息
    p_err_tab     OUT eg_ebs_err_tab,     -- 导入日志详细信息
    p_request_id  OUT NUMBER,               -- 提交请求ID
    p_import_time OUT DATE                  -- 提交时间);
    475
    
    p_result_flag OUT
    p_result_flag 
    x_p_result_flag 
    
    p_result_text OUT
    p_result_text 
    x_p_result_text 
    
    p_err_tab     OUT
    p_err_tab     
    x_p_err_tab     
    
    p_request_id  OUT
    p_request_id  
    x_p_request_id  
    
    p_import_time OUT
    p_import_time 
    x_p_import_time 
    
    PROCEDURE ACCOUNT_IMPORT(
    P_USER_ID         NUMBER,               --  用户ID
    P_RESP_ID         NUMBER,               -- 职责ID
    P_APP_ID          NUMBER,               -- 应用ID
    P_IN_DATA_SET     eg_ebs_account_tab, -- 输入数据集
    x_p_result_flag  VARCHAR2,             -- 导入结果标志 S成功,E是不
    x_p_result_text  VARCHAR2,             -- 导入结果信息
    x_p_err_tab      eg_ebs_err_tab,     -- 导入日志详细信息
    x_p_request_id   NUMBER,               -- 提交请求ID
    x_p_import_time  DATE                  -- 提交时间);
  • 相关阅读:
    git版本库管理介绍,撤销git pull操作
    【laravel5.4】自定义404、503等页面
    【laravel5.4】{{$name}}、{{name}}、@{{$name}} 和 @{{name}} 的区别
    python 了解一点属性的延迟计算
    python 了解一下__dict__
    excel怎么把一个sheet的 全部内容打印到一页纸上
    python 简单了解一下 描述器
    python 调用父类方法, 重写父类构造方法, 不显式调用,会报错
    Python 今天抽空学习了@Property
    python 语法糖是什么意思
  • 原文地址:https://www.cnblogs.com/sfeng1825/p/2727494.html
Copyright © 2011-2022 走看看