有这么一段字符串
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'如何才能准确的获取红色所标记出来的几个字符串呢
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'如何才能准确的获取红色所标记出来的几个字符串呢
icon='(.*?)'差不多正则就是这样,没测试。
(?<=\sname=')\S+(?=')可以匹配到com.gg.test
其他的都差不多吧。 用正反向预搜索 可以实现啊。
你这样子把整个的String都就匹配到了。楼主貌似不是这个意思
+ "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));
}
哥们
可不可以帮忙解释一下 这个: String pattern = "(?is)\\bname='([^']*)'.*?\\bversionCode='([^']*)'.*?\\bversionName='([^']*)'.*?\\bicon='([^']*)'";(?is) 是啥意思???