Java(Apex) RegEx 不工作?
Java(Apex) RegEx not working?
我在 salesforce, apex 中遇到正则表达式问题。当我看到 apex 使用与 apex 相同的语法和逻辑时,我也将其针对 java 开发人员。
我调试了字符串,它是正确的。 street
等于 'str 3 B'.
当使用 http://www.regexr.com/ 时,正则表达式有效 ('\d \w$').
代码:
Matcher hasString = Pattern.compile('\d \w$').matcher(street);
if(hasString.matches())
我的问题是,hasString.matches()
解析为 false
。谁能告诉我我是否做错了什么?我尝试在没有 $
、不同大小写等的情况下使用它,但我无法让它工作。
提前致谢!
您需要使用 find
而不是 matches
进行部分输入匹配,因为 matches
会尝试匹配完整的输入文本。
Matcher hasString = Pattern.compile("\d \w$").matcher(street);
if(hasString.find()) {
// matched
System.out.println("Start position: " + hasString.start());
}
我在 salesforce, apex 中遇到正则表达式问题。当我看到 apex 使用与 apex 相同的语法和逻辑时,我也将其针对 java 开发人员。
我调试了字符串,它是正确的。 street
等于 'str 3 B'.
当使用 http://www.regexr.com/ 时,正则表达式有效 ('\d \w$').
代码:
Matcher hasString = Pattern.compile('\d \w$').matcher(street);
if(hasString.matches())
我的问题是,hasString.matches()
解析为 false
。谁能告诉我我是否做错了什么?我尝试在没有 $
、不同大小写等的情况下使用它,但我无法让它工作。
提前致谢!
您需要使用 find
而不是 matches
进行部分输入匹配,因为 matches
会尝试匹配完整的输入文本。
Matcher hasString = Pattern.compile("\d \w$").matcher(street);
if(hasString.find()) {
// matched
System.out.println("Start position: " + hasString.start());
}