我正在尝试执行以下操作:
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获得任何输出。
请帮助≥..谢谢。
答案 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()
}