有这么一段字符串
package: name='com.gg.test' versionCode='1' versionName='1.0'
uses-permission:'android.permission.WRITE_SETTINGS'
uses-permission:'android.permission.SYSTEM_ALERT_WINDOW'
uses-permission:'android.permission.WAKE_LOCK'
uses-permission:'android.permission.INTERNET'
application: label='测试测试测试' icon='res/drawable/app_icon.png'如何才能准确的获取红色所标记出来的几个字符串呢

解决方案 »

  1.   

    package: name='(.*?)' versionCode='(.*?)' versionName='(.*?)'.*?
    icon='(.*?)'差不多正则就是这样,没测试。
      

  2.   

    这样子写
    (?<=\sname=')\S+(?=')可以匹配到com.gg.test 
     其他的都差不多吧。  用正反向预搜索  可以实现啊。
      

  3.   


    你这样子把整个的String都就匹配到了。楼主貌似不是这个意思
      

  4.   

    try... String test = "package: name='com.gg.test' versionCode='1' versionName='1.0'\n"
     + "uses-permission:'android.permission.WRITE_SETTINGS'\n"
     + "uses-permission:'android.permission.SYSTEM_ALERT_WINDOW'\n"
     + "uses-permission:'android.permission.WAKE_LOCK'\n"
     + "uses-permission:'android.permission.INTERNET'\n"
     + "application: label='测试测试测试' icon='res/drawable/app_icon.png'";
    String pattern = "(?is)\\bname='([^']*)'.*?\\bversionCode='([^']*)'.*?\\bversionName='([^']*)'.*?\\bicon='([^']*)'";
    Matcher m = Pattern.compile(pattern).matcher(test);
    while(m.find())
    {
    System.out.println(m.group(1));
    System.out.println(m.group(2));
    System.out.println(m.group(3));
    System.out.println(m.group(4));
    }
      

  5.   


    哥们 
    可不可以帮忙解释一下 这个: String pattern = "(?is)\\bname='([^']*)'.*?\\bversionCode='([^']*)'.*?\\bversionName='([^']*)'.*?\\bicon='([^']*)'";(?is)  是啥意思???