String content=null;
String a="aaaaaw2waaa";content=a.replaceall("",str(字符串a中的2));public void str(string a){}从字符转a中,将w中间的2(任意数)取出来,用这个参数传入执行str方法。这个正则要怎么写啊?

解决方案 »

  1.   


    String a="aaaaaw2waaa";
    System.out.println(a.replaceAll(".*?w(\\d*)w.*","$1"));
      

  2.   


    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class Main {
    public static void main(String[] args) {
    String a="aaaaaw123waaa";
    Pattern p = Pattern.compile("w\\d+w");
    Matcher m = p.matcher(a);
    int start = 0;
    int end = 0;
    if(m.find()) {
    start = m.start();
    end = m.end();
    String temp = a.substring(start, end);
    System.out.println(temp.substring(1,temp.length()-1));
    } else {
    System.out.println("没找到匹配的字符串");
    }
    }
    }
      

  3.   

    可以不用正则,用String类中方法就可以
    String a="aaaaaw2waaa";
    int i = a.indexOf("w");
    int j = a.lastIndexOf("w");
    String str = a.substring(i+1, j);
    str就是两个‘w’中间的数字