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                  -- 提交时间);
  • 相关阅读:
    python-Lists
    python报错ValueError: invalid x escape
    ssm框架自动生成实体类、Dao、*Map.xml
    echarts3地图实现点击某省市区域跳转到相应页面
    echart3绘制地图
    sts maven项目单元测试报错initializationerror not found
    jQuery datatable后台分页实现
    解决bootstrapValidator校验冲突
    JAVA基础复习.DAY1
    【日记】1.18
  • 原文地址:https://www.cnblogs.com/sfeng1825/p/2727494.html
Copyright © 2011-2022 走看看