Waht是仅与#34; pkgName"匹配的java正则表达式来自字符串:
"name=pkgname -path=some.apk -minutes=120"
我试过了:
public static final Pattern PKG_NAME_REGEX = Pattern.compile("(name=)(\\b.+\\b)\\s");
匹配的buit组2给了我:" pkgname -path = some.apk -minutes = 120"
感谢
答案 0 :(得分:3)
什么是匹配 " pkgName"的java正则表达式来自字符串:
你可以使用积极的外观:
(?<=name=)\S+
(?<=name=)
是积极的后卫,断言以前的职位有name=
\S+
将匹配1个或多个非空格字符使用Java:
public static final Pattern PKG_NAME_REGEX = Pattern.compile("(?<=name=)\\S+");
答案 1 :(得分:2)
试试这个:
String s = "name=pkgname -path=some.apk -minutes=120";
Pattern p = Pattern.compile("name=(\\w+)");
Matcher m = p.matcher(s);
if (m.find())
System.out.println(m.group(1));
答案 2 :(得分:0)
逐字逐句地重复:
"(name=)(\\b\\w+\\b)\\s"
这里的单词边界不是很好用的:
"(name=)(\\w+)\\s"