Java(Apex)正则表达式不工作?

Java(Apex)正则表达式不工作?,java,regex,apex,Java,Regex,Apex,我在apex salesforce的正则表达式中遇到了问题。当我看到apex使用与apex相同的语法和逻辑时,我也针对java开发人员。 我调试了字符串,它是正确的街道等于'str 3 B' 使用时,正则表达式('\d\w$')起作用 守则: Matcher hasString = Pattern.compile('\\d \\w$').matcher(street); if(hasString.matches()) 我的问题是,hastring.matches()解析为false。有

我在apex salesforce的正则表达式中遇到了问题。当我看到apex使用与apex相同的语法和逻辑时,我也针对java开发人员。 我调试了字符串,它是正确的<代码>街道等于'str 3 B'

使用时,正则表达式('\d\w$')起作用

守则:

Matcher hasString = Pattern.compile('\\d \\w$').matcher(street);
    if(hasString.matches())
我的问题是,
hastring.matches()
解析为
false
。有人能告诉我我是否做错了什么吗?我试着在没有
$
的情况下使用它,使用不同的大小写等等,但我就是无法让它工作


提前谢谢

您需要使用
find
而不是
matches
进行部分输入匹配,因为
匹配
尝试匹配完整的输入文本

Matcher hasString = Pattern.compile("\\d \\w$").matcher(street);
if(hasString.find()) {
   // matched
   System.out.println("Start position: " + hasString.start());
}

啊,太好了。真不敢相信我在这上面浪费了一个小时!真的非常感谢。如果有类似RegionStart()的东西可与结合使用,您能告诉我吗。查找?由于使用.find()方法返回“0”(显然)。您可以使用
hastring.start()
(请参阅更新的答案),您真是太棒了:)!谢谢你,对我在第二个问题上的懒惰表示抱歉。