java - 在Java正则表达式中向字符类添加方括号

标签 java regex character lines

我想从文件 lne 中逐行读取内容 String,并在每一行中删除不属于以下 [ { } ] 之一的所有字符 我想用一个方法:

line = line.replaceAll("[^[({})]]","");

但问题是 char [] 在正则表达式语法中意味着其他东西。 怎么处理?

致以诚挚的问候

最佳答案

在 Java 中,正则表达式字符类可以具有并集和交集,因此,如果您希望将 [] 视为文字符号,则必须在内部对其进行转义。由于 \ 可用于定义转义序列,因此应将其加倍以表示文字正则表达式转义 \

使用

line = line.replaceAll("[^\\[({})\\]]","");
                          ^^     ^^

关于java - 在Java正则表达式中向字符类添加方括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34912455/

相关文章:

javascript - Node : RegExp returns nothing

正则表达式不是运算符

encoding - cygwin 的某些输出无法使用错误的编码读取?

java - 字 rune 字中转义数字的 Java 语义是什么,例如 '\15' ?

jquery - 如何使用 jQuery 获取所选文本的字符长度?

java - 在 FTP 服务器上创建 XML 文件,无需在本地创建物理文件

java - 尝试理解声明数组的不同方式

java - 与 Java Matcher 匹配的正则表达式无法按预期找到

java - 拼图: cannot find Kotlin symbols

Java 套接字 : Request-response pattern with object streams