Java和RegEx ..如何申请

时间:2011-01-20 16:24:47

标签: java regex

我正在尝试执行以下操作:

            Scanner scanner = new Scanner(file);
            StringBuilder sb = new StringBuilder();
            while (scanner.hasNextLine()) {
                sb.append(scanner.nextLine() + "\n");
            }

            String data = sb.toString();

            Pattern p = Pattern.compile("\b[ABD-Z]*C[ABD-Z]*\b");
            Matcher m = p.matcher(data);

            String a = m.group();

如何访问m的结果?为什么我的RegEx不工作?

我已经尝试过转义反斜杠了。

它适用于http://www.gskinner.com/RegExr/,但我无法从Java获得任何输出。

请帮助≥..谢谢。

3 个答案:

答案 0 :(得分:1)

是的,您必须转义反斜杠以获得有效的java字符串

您必须在m.find()

之前致电m.group()

答案 1 :(得分:1)

您需要使用\\b代替\b,因为后者是退格,如果您尝试匹配子字符串或m.find()以匹配,请调用m.match()调用group()之前的整个字符串。

答案 2 :(得分:1)

你需要使用 m.find() 要么 m.match() 最有可能在一个while循环中。

while (m.find()) {
 do something with m.group()
}