我正试图找出我正在使用的Java正则表达式问题。这是1.6,但我认为不重要。总之...
我将有一些输入数据如下......
"Blah yadda yidda 44-Barack Obama, this that the other"
或
"Something here, there 22-Hyphenated-example. Hi there folks"
基本上我想将数字后面的所有内容提取到尾随标点符号。在两个示例输入中,我想提取...
"Barack Obama"
和
"Hyphenated-example"
我无法获得我需要使用的模式。我能得到的最接近的是......
"[0-9]{1,2}-([A-Z -]*\\b*)"
但是,这给了我......
"44-Barack Obama"
我的代码是......
Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher("Blah yadda yidda 44-Barack Obama, this that the other");
if (matcher.find())
// This gives me "44-Barack Obama" but I want "Barack Obama".
System.out.println(matcher.group());
有趣的是,我正在使用QuickREx Eclipse插件来测试这个模式,并返回正确的值。但是,运行上面的代码不会。
有什么想法吗?
答案 0 :(得分:4)
使用matcher.group(1)
的结果,而不是matcher.group()
。第二种形式返回与之前的matches
或find
方法匹配的所有内容。第一种形式用于访问正则表达式中的各个捕获组。