java - Java 匹配不匹配
问题描述
有人可以解释为什么java中的以下语句返回false吗?
boolean results = "123/#".matches("\\d/#")
我试图逃避正斜杠和井号,但这被标记为多余的..
解决方案
Java 中的 String.matches() 需要完整的字符串来匹配正则表达式,就好像它是用^ ... $
. 所以想象一下,你实际上是在^\d/#$
这里测试正则表达式。
要允许字符串在之前/之后包含任何其他内容,您必须在正则表达式中使用.*
(anything) 明确允许它,例如:
boolean results = "123/#".matches(".*\\d/#.*")
推荐阅读
- reactjs - 使用 React JS 从 CloudFirestore 获取特定帖子
- java - 如何从我的 SQL 数据库中获取信息
- laravel - gcloud应用引擎laravel应用程序cron作业未执行
- flutter - 如何在 Flutter 中按顺序添加新的列表图块?当我添加新的时,它是按随机顺序添加的
- excel - Excel 图表 Y 轴在 360 度回滚回零
- google-chrome - 在 Travis CI 上的 Chrome 和 Firefox 中显示中文、韩文和日文字体
- javascript - 在 moment.js 中获取两次之间的小时数
- node.js - 通过 url 访问节点服务器
- sql - 在 foreach 循环期间获取逗号分隔字段的第一个元素(SQL Razor)
- java - 当我们在 Spring Security 中访问安全 API 时,调用顺序是什么?