Java中如何按换行加单个制表符\n\t分割字符串且不匹配\n\t\t?
解决方案
你可以使用负向先行断言的正则表达式实现需求,核心逻辑是只匹配后序没有紧跟另一个制表符的\n\t分隔符:
- 正则表达式核心规则:
\n\t(?!\t) - 其中
(?!\t)是负向先行断言,代表当前匹配位置的后序不能出现制表符,自然就排除了\n\t\t的场景,不会错误拆分换行加两个制表符的内容
Java 代码示例:
String input = "dir\n\tsubdir1\n\tsubdir2\n\t\tfile.ext"; // Java 中正则需要额外转义反斜杠 String[] answers = input.split("\\n\\t(?!\\t)");
分割后answers数组的内容就是你期望的结果:
- 索引0:
dir - 索引1:
subdir1 - 索引2:
subdir2\n\t\tfile.ext
内容的提问来源于stack exchange,提问作者scott2000
相关产品推荐
相关产品推荐

