gpt4 book ai didi

java - 无法理解正则表达式拆分字符串的结果

转载 作者:行者123 更新时间:2023-11-30 06:19:56 25 4
gpt4 key购买 nike

我在 Java (Java 8) 中运行以下 2 行:

String dirTree = "dir\n\tsubdir1\n\tsubdir2\n\t\tfile.ext";
String[] result = dirTree.split("\\n\\t[^\\t]");

看到的结果 - 结果:

["dir", "ubdir1", "ubdir2\n\t\tfile.ext"]

我期待 - 结果:

["dir", "subdir1", "subdir2\n\t\tfile.ext"]

有人可以解释为什么结果中字符串的第一个字符丢失(例如 - “ubdir1”而不是“subdir1”)吗?

最佳答案

按此拆分:

\n\t(?!\t)

说明:

  1. \n\t 匹配一个换行符和一个制表符
  2. (?!\t) 负向前视以确保没有\t 紧随其后\n\t
  3. 之后

因此 (?!\t)[^\t] 之间的区别在于第一个返回 true 或 false 和第二个匹配字符。因此,在您的情况下,它匹配非制表符并也使用它来分割。

关于java - 无法理解正则表达式拆分字符串的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48375081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com