java - 为什么正则表达式 "\\[\\]"在 Java 中是多余的?

标签 java regex intellij-idea

我只想匹配我代码中的方括号[]:

// #peekToken() -> String
do { ... } while (context.peekToken().matches("\\[\\]"));

intellij 说:

Intellij says about brackets

自动修复使其变成:

"\\[]"

为什么它们是一样的?

最佳答案

这是因为字符“闭括号”] 不是正则表达式,除非之前有一个括号打开[。因此,对 \\] 进行转义是多余的,因为 Java 足够聪明,知道在这种情况下我们正在搜索字符本身。

您可以阅读 documentation有关字符被视为正则表达式的上下文的更多信息。

关于java - 为什么正则表达式 "\\[\\]"在 Java 中是多余的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56388725/

相关文章:

c# - 正则表达式以匹配来自 URL 的资源之前的路径

java - 使用起始字符串和结束字符串从长字符串中提取子字符串?

gradle - 在gradle构建脚本中包含类文件

macos - 在 Mac 上为 IntelliJ 设置 JDK 7

java - 简单的字符串比较问题

Java 同步字符串 IllegalMonitorStateException

java - 使用 StringBuffer 构建更高效的 SQL 插入

java - Solr异常: Error opening new searcher

regex - 如何使用正则表达式匹配 VBA 中的简单数字模式

Android Studio 4.0 卡在刷新中,无法运行项目