java中正则表达式的模式匹配

java中正则表达式的模式匹配,java,regex,Java,Regex,我需要编写一个程序,将模式与行匹配,该模式可以是正则表达式或正规模式 示例: 若模式为“tiger”,则仅包含“tiger”的行应匹配 如果模式为“^t”,则以“t”开头的行应匹配 我是这样做的: 块报价模式和匹配器类 问题是,当我使用Matcher.find()时,所有正则表达式都是匹配的,但如果我给出完整的模式,那么它就不匹配 如果使用matches(),则只匹配完整的模式,而不匹配正则表达式 我的代码: import java.util.regex.Pattern; import java

我需要编写一个程序,将模式与行匹配,该模式可以是正则表达式或正规模式

示例:
若模式为“tiger”,则仅包含“tiger”的行应匹配
如果模式为“^t”,则以“t”开头的行应匹配

我是这样做的:

块报价模式和匹配器类

问题是,当我使用
Matcher.find()
时,所有正则表达式都是匹配的,但如果我给出完整的模式,那么它就不匹配

如果使用
matches()
,则只匹配完整的模式,而不匹配正则表达式

我的代码:

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class MatchesLooking 
{

    private static final String REGEX = "^f";
    private static final String INPUT =
    "fooooooooooooooooo";
    private static Pattern pattern;
    private static Matcher matcher;

    public static void main(String[] args) 
    {

        // Initialize
        pattern = Pattern.compile(REGEX);
        matcher = pattern.matcher(INPUT);

        System.out.println("Current REGEX is: "
                       + REGEX);
        System.out.println("Current INPUT is: "
                       + INPUT);

        System.out.println("find(): "
        + matcher.find());
        System.out.println("matches(): "
        + matcher.matches());
    }
}

匹配
给定正则表达式
^t
仅当字符串仅由
t
组成时才匹配

您还需要包含字符串的其余部分,以使其匹配。您可以通过附加
*
,这意味着零个或多个通配符

"^t.*"
另外,当使用
匹配项时,
^
(相当于
$
)是可选的


我希望这会有帮助,我不完全清楚你在挣扎什么。请随意澄清。

匹配
如果正则表达式为
^t,则只有当字符串仅由
t
组成时才会匹配

您还需要包含字符串的其余部分,以使其匹配。您可以通过附加
*
,这意味着零个或多个通配符

"^t.*"
另外,当使用
匹配项时,
^
(相当于
$
)是可选的


我希望这会有帮助,我不完全清楚你在挣扎什么。请随时澄清。

这就是Matcher的工作原理:

while(matcher.find()){
System.out.println(matcher.group());
}
如果您确定输入中只能有一个匹配项,则还可以使用:

System.out.println(“find():”+matcher.find());
System.out.println(“matches():”+matcher.group());

这就是Matcher的工作原理:

while(matcher.find()){
System.out.println(matcher.group());
}
如果您确定输入中只能有一个匹配项,则还可以使用:

System.out.println(“find():”+matcher.find());
System.out.println(“matches():”+matcher.group());

如果您只尝试一个,怎么能说“所有常规Expressio都匹配”?请告诉我们您对程序输出的期望,它实际打印的内容以及您不了解的内容。哦,读一下Matcher的java文档#matchesHow如果你只尝试一个,你能说“所有正则表达式都匹配”吗?请告诉我们您对程序输出的期望,它实际打印的内容以及您不了解的内容。哦,阅读Matcher的java文档#matches在我看来,OP并不是对它返回的是布尔值而不是匹配/找到的字符串感到困惑,或者想要返回匹配/找到的字符串。在我看来,OP并不是对返回布尔值而不是匹配/找到的字符串感到困惑,或者想要返回匹配/找到的字符串。