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                  -- 提交时间);
  • 相关阅读:
    Linux调试工具
    LINUX总结第13篇:LINUX下动态库及版本号控制
    linux虚拟机无法上网 Network is unreachable
    VMware 如何通过现有虚拟机克隆新的虚拟机 (图文)
    Win10下安装虚拟机提示“Intel VT-x处于禁用状态”如何解决
    VMware安装Centos7超详细过程(图文)
    kubernetes---CentOS7安装kubernetes1.11.2图文完整版
    通过Idea进行Kubernetes YAML开发
    如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes
    SpringBoot + Spring Security 基本使用及个性化登录配置详解
  • 原文地址:https://www.cnblogs.com/sfeng1825/p/2727494.html
Copyright © 2011-2022 走看看