我有一个字符串是:
Value="&dataURL=/HistoryTrendDataServlet?param=0049"
我想将其改写成
Value="&dataURL=/123/HistoryTrendDataServlet?param=0049"麻烦各位帮个忙,运用正则表达式改写成下面的字符串。或者提供一个软件帮助我完成。

解决方案 »

  1.   

    请参考如下代码:
    public class Test {
      /**
       * 替换
       * 
       * @param str 被替换的字符串
       * @param pattern 正则表达式
       * @param replacePattern 替换的内容
       * @return 替换后的字符串
       */
      public static String replaceAll(String str, String pattern, String replacePattern) {
        if (str == null || pattern == null || replacePattern == null) {
          return str;
        }
        Pattern p = Pattern.compile(pattern);
        Matcher m = p.matcher(str);    StringBuffer b = new StringBuffer();
        while (m.find()) {
          String tmp = new String(replacePattern);
          for (int i = 1; i <= m.groupCount(); i++) {
            tmp = tmp.replaceAll("\\{" + i + "\\}", m.group(i));
          }
          m.appendReplacement(b, tmp);
        }
        m.appendTail(b);
        return b.toString();
      }  public static void main(String args[]) {
       System.out.println(replaceAll("Value=\"&dataURL=/HistoryTrendDataServlet?param=0049\"","Value=\"&dataURL=(.*)","Value=\"&dataURL=/123{1}"));
      }
    }
      

  2.   

    完善一下:
    package test;import java.util.Calendar;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class Test {
      /**
       * 替换
       * 
       * @param str 被替换的字符串
       * @param pattern 正则表达式
       * @param replacePattern 替换的内容
       * @return 替换后的字符串
       */
      public static String replaceAll(String str, String pattern, String replacePattern) {
        if (str == null || pattern == null || replacePattern == null) {
          return str;
        }
        Pattern p = Pattern.compile(pattern);
        Matcher m = p.matcher(str);    StringBuffer b = new StringBuffer();
        while (m.find()) {
          String tmp = new String(replacePattern);
          for (int i = 1; i <= m.groupCount(); i++) {
            tmp = tmp.replaceAll("\\{" + i + "\\}", m.group(i));
          }
          m.appendReplacement(b, tmp);
        }
        m.appendTail(b);
        return b.toString();
      }  public static String replace(String from) {
        return replaceAll(from, "Value=\"&dataURL=(.*)", "Value=\"&dataURL=/123{1}");
      }  public static void main(String args[]) {
        System.out.println(replace("Value=\"&dataURL=/HistoryTrendDataServlet?param=0049\""));
      }
    }