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

标签 java regex apex

我在 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());
}

关于Java(Apex) 正则表达式不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30126772/

相关文章:

regex - 如何将常规引号(即 ', ")转换为 LaTeX/TeX 引号(即 `' 、 `` '')

salesforce - Twilio 发送短信抛出异常 Salesforce

mime-types - Apex 文件浏览... Mime 类型限制 text/csv

java - OpenCV 构建到 java,不在构建中生成 java 文件夹

java - 如何将外部文件复制到当前运行的jar中?

java - 将准确时间插入数据库

regex - 如何使用正则表达式在 Visual Studio Code 中搜索以仅匹配未注释的代码?

Java - KeyListener 问题

php - 正则表达式匹配其中包含 HTML 的占位符

salesforce - 为什么属性未在 Salesforce Apex 中设置?