Java正则表达式匹配错误地出现[重复]

问题描述 投票:0回答:2

此问题已经在这里有了答案:

[在开发一个更复杂的文本解析程序时,我发现我的正则表达式条件一直都返回false,即使我正在解析的文本显然是匹配的。

我决定尝试一个非常基本的示例:

public static void main(String[] args){
    Pattern p = Pattern.compile("^Date");
    Matcher m = p.matcher("Dategggggggggg");
    System.out.println(m.matches());
}

最后一行显示为false,这时该正则表达式显然应与该字符串匹配。为什么会这样?

java regex
2个回答
3
投票

这是您要寻找的

public static void main(String[] args){
    Pattern p = Pattern.compile("^Date");
    Matcher m = p.matcher("Dategggggggggg");
    System.out.println(m.find());
}

它将按预期返回true


1
投票

我想您可以使用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
© www.soinside.com 2019 - 2024. All rights reserved.