Java 愚蠢的正则表达式问题。我做错了什么?

Java 愚蠢的正则表达式问题。我做错了什么?,java,android,regex,Java,Android,Regex,我做错了什么?为什么if语句从未被击中 matches()方法尝试将整个字符串与模式匹配。您需要find()方法。matches()方法尝试将整个字符串与模式匹配。您需要find()方法。我也遇到了同样的问题。 我不知道原因。 如果有人知道这个问题,请在这里张贴。 我已经解决了反复使用find()而不是matches()的问题。我也遇到了同样的问题。 我不知道原因。 如果有人知道这个问题,请在这里张贴。 我已经解决了反复使用find()而不是matches()的问题。试试看Matcher.mat

我做错了什么?为什么if语句从未被击中

matches()方法尝试将整个字符串与模式匹配。您需要
find()
方法。

matches()方法尝试将整个字符串与模式匹配。您需要
find()
方法。

我也遇到了同样的问题。 我不知道原因。 如果有人知道这个问题,请在这里张贴。
我已经解决了反复使用find()而不是matches()的问题。

我也遇到了同样的问题。 我不知道原因。 如果有人知道这个问题,请在这里张贴。
我已经解决了反复使用find()而不是matches()的问题。

试试看
Matcher.matches()
检查整个字符串是否与模式匹配。

尝试
Matcher.matches()
检查整个字符串是否与模式匹配。

尝试将模式更改为
“*world.*”


这样,它将匹配任何包含“world”的字符串。

尝试将模式更改为
“*world.*”


这样,它将匹配任何包含“world”的字符串。

您需要使用
find
,因为

matches尝试将图案与整个字符串匹配,并 在模式的开始处隐式添加一个“^”,在模式的结尾处隐式添加一个$


因此,您的模式相当于“^world$”

您需要使用
find
,因为

matches尝试将图案与整个字符串匹配,并 在模式的开始处隐式添加一个“^”,在模式的结尾处隐式添加一个$


因此,您的模式相当于“^world$”

您是正确的。非常感谢。我阅读了Matcher上的文档,但仍然不清楚matches()和find()之间的区别。你介意详细解释一下吗?match的意思是“整个字符串是否与提供的模式匹配”。“查找”表示“字符串中是否出现此模式”。注释应为:string p=“*world.*”;//Reg Ex,不是通配符。你是对的。非常感谢。我阅读了Matcher上的文档,但仍然不清楚matches()和find()之间的区别。你介意详细解释一下吗?match的意思是“整个字符串是否与提供的模式匹配”。“查找”表示“字符串中是否出现此模式”。注释应为:string p=“*world.*”;//Reg Ex,不是通配符。啊……这很有道理……而且很愚蠢。如果我想要的话,我会加上它。呃。非常感谢!啊……这是有道理的……而且是愚蠢的。如果我想要的话,我会加上它。呃。非常感谢!
String url = "hello world";

String p = "world";
Pattern pattern = Pattern.compile(p);
Matcher matcher = pattern.matcher(url);
if (matcher.matches()) {
    int start = matcher.start();
    int end = matcher.end();
}
String p = ".*world.*";