正则表达式匹配单个单词

时间:2017-01-06 17:06:54

标签: java regex

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"

感谢

3 个答案:

答案 0 :(得分:3)

  

什么是匹配 " pkgName"的java正则表达式来自字符串:

你可以使用积极的外观:

(?<=name=)\S+
  • (?<=name=)是积极的后卫,断言以前的职位有name=
  • \S+将匹配1个或多个非空格字符

使用Java:

public static final Pattern PKG_NAME_REGEX = Pattern.compile("(?<=name=)\\S+");

RegEx Demo

答案 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"