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                  -- 提交时间);
  • 相关阅读:
    [转]SIFT特征提取分析
    OSGEARTH三维地形开源项目
    使用C#改变鼠标的指针形状
    检测到 LoaderLock:DLL"XXXX"正试图在OS加载程序锁内执行
    未能加载文件或程序集“XXXXX”或它的某一个依赖项。试图加载格式不正确的程序。
    未能进入中断模式,原因如下:源文件“XXXXXX”不属于正在调试的项目。
    C# 版本的 计时器类:精确到微秒 秒后保留一位小数 支持年月日时分秒带单位的输出
    OpenGL2.0及以上版本中glm,glut,glew,glfw,mesa等部件的关系
    OpenGL 4.3配置教程
    ubuntu maven环境安装配置
  • 原文地址:https://www.cnblogs.com/sfeng1825/p/2727494.html
Copyright © 2011-2022 走看看