打印使字符串与正则表达式匹配的字符串的一部分

时间:2016-08-10 19:20:07

标签: java regex string

我想检查我的String是否包含任何字母(N S W E - 地图方向)。如果确实如此,我想设置direction = that letter并返回true或false。

示例:

输入: 15.15.15 N

输出我想收到: N

direction = matcher.group();给我的输出: 15.15.15 N

正如预期的那样,它会打印与正则表达式匹配的字符串。我想只打印使其匹配的部分。字母可以在字符串的开头或末尾。知道怎么做吗?

public boolean example (String value) {

    Pattern parrent = Pattern.compile(".*[a-zA-Z].*");
    Matcher matcher = parrent.matcher(value);        

    if(matcher.find()) {
        direction = matcher.group();
        System.out.println("direction" + direction);
        return false;
    }
    else
        return true;
    }

1 个答案:

答案 0 :(得分:3)

你那里没有group

请尝试此处:

Pattern pattern = Pattern.compile(".* (N|S|W|E)");

关键是:你基本上有

非空白

空格

您感兴趣的四个字母之一。

因此,你想要一个忽略你不关心的事情的简单模式;和想要回来的元素周围的群组