记录的
应package com.yangxiutian.test;
import java.util.regex.Matcher;import java.util.regex.Pattern;/* * stop字母任意组合的正则表达式 \b(?i)[s|t|o|p]{4}\b */public class Test{ public static void main(String[] args) { //System.out.println("sTop".matches("(?i)[s|t|o|p]{4}")); // STRING STR = "ABC"; // SYstem.out.println(str.toUpperCase()); StringBuffer sb = new StringBuffer( "select * from ims_business where u_operation_name like '%pi%' or u_description like '%ff%' or u_description like '%ff%'"); Pattern p = Pattern.compile("\\s+like");//追加后括号 Matcher m = p.matcher(sb); while (m.find()) { System.out.println(m.start()); sb.insert(m.start(), ")"); } System.out.println(sb); p = Pattern.compile("\\S+\\s+like");//追加前括号 m = p.matcher(sb); while (m.find()) { System.out.println(m.start()); sb.insert(m.start(), "|^_^|");//由于括号会影响,所以先替换成"|^_^|"再将"|^_^|"替换成"upper(" } String s = sb.toString().replace("|^_^|", "upper("); System.out.println(s); }}??该有三个"like"可是第二遍找的时候为什么只有两个