作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个表达式可以是 13.33
、15.66-17.22
、17.33-17.66
。我希望能够弄清楚其中是否有 "-"
(en-dash),因为这会改变我的代码的运行方式。我关注了this线程来检查表达式中的匹配项。
我查找破折号的正则表达式是 "-"
。可以看到我的正则表达式在线工作 here , 但在 Java 中使用时失败。我的代码如下。
Pattern p = Pattern.compile("-");
Matcher m = p.matcher(refVal);
System.out.println(m.find());
if (m.find()){
//Do stuff
}
对于条目 17.33–17.66 ref
,代码打印 false
。
预期用例:
Input: 17.33-17.66 reasdfkljasdfjlkadsf
Output: m.find() should be true
Input: 17.33
Output: m.find() should be false
Input: 2-3 five blah foo
Output: m.find() should be true
最佳答案
问题是在您的输入字符串中破折号是 –
(150 ascii),而模式中的破折号是 -
(45 ascii)。 Reference
关于java - 匹配 "-"有完全意想不到的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34524048/
我是一名优秀的程序员,十分优秀!