此问题已经在这里有了答案:
[在开发一个更复杂的文本解析程序时,我发现我的正则表达式条件一直都返回false,即使我正在解析的文本显然是匹配的。
我决定尝试一个非常基本的示例:
public static void main(String[] args){
Pattern p = Pattern.compile("^Date");
Matcher m = p.matcher("Dategggggggggg");
System.out.println(m.matches());
}
最后一行显示为false
,这时该正则表达式显然应与该字符串匹配。为什么会这样?
这是您要寻找的
public static void main(String[] args){
Pattern p = Pattern.compile("^Date");
Matcher m = p.matcher("Dategggggggggg");
System.out.println(m.find());
}
它将按预期返回true。
我想您可以使用matcher.group(0)
:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegularExpression{
public static void main(String[] args){
final String regex = "^Date";
final String string = "Dategggggggggg";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
}
}
}
Full match: Date