【发布时间】:2016-09-20 19:46:17
【问题描述】:
如何在 java 中用正则表达式替换大括号 {...} 之间的文本,包括换行符?
我已经看到很多关于删除括号内文本的相关问题,但这里的主要问题是,如果匹配中间有一个新行,它似乎有点不匹配。
感谢任何有关如何正确执行此操作的帮助,谢谢!
例子:
输入:
text 1 {
text 2
text 3
}
替换后的输出:
text1
【问题讨论】:
-
使用
System.out.println("text 1 {\ntext 2\ntext 3\n}".replaceAll("(?s)\\{.*\\}", "")); -
见stackoverflow.com/questions/6500036/…你可以使用
PATTERN.DOTALL或前置(?s) -
由于您声明 Open-Clos 大括号,它散发出平衡文本的味道。否则,为什么不直接匹配
}{。语言中没有不解析 nesting 语法的真正构造。 Java 不支持它。继续前进,没什么可看的……
标签: java regex string replace replaceall