Java 正则表达式匹配 +/-/*/%

标签 java regex

所以我有一个想要解析的字符串,但我无法让正则表达式工作。我正在使用https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/RegExp作为我的正则表达式指南。

我希望我的正则表达式能够匹配以下任何符号。

+ - * % / 

我的代码如下。输入字符串:D[1]+D[0]。应该打印 true...但是打印 false。

String tmp = "D[1]+D[0]";
if(tmp.matches("[\\+\\-\\*\\/\\%]"))
    System.out.println("true");
else
    System.out.println("false");

有什么想法吗?

最佳答案

这是因为 matches 希望匹配整个字符串,而不是其中的任何部分。

您不需要转义方括号内的字符。

String str = "D[1]+D[0]";
Pattern p = Pattern.compile("[+-/*]");
Matcher m = p.matcher(str);
if (m.find()) {
    System.out.println("Found: " + m.group());
}

关于Java 正则表达式匹配 +/-/*/%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14574407/

相关文章:

java - 关闭钩子(Hook)可以依赖另一个线程吗?

java - 单元测试中@TestOnly和@VisibleForTesting有什么区别

java - 是否可以检查文件 (.gz) 是否被多次压缩?

regex - 为什么 grep 匹配模式 "\' 的所有行“

正则表达式(如果有效的 WebSocket 地址)

python - 使用 Python 正则表达式提取带连字符的电话号码

JavaFX SimpleSwingBrowser 自动调整网页

java - 当我需要使用 hashMap 因为它不同步时

visual-studio - 正则表达式:查找/替换之前没有给定字符串的所有子字符串?

javascript - Regex 适用于 RegExpr 但不适用于 Javascript。下划线和正斜杠之前的匹配