需匹配的字符串:
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 -- 提交时间);