System.out.println(
Arrays.deepToString(
"abc<def>ghi".split("(?:<)|(?:>)")
)
);
这会打印出 [abc, def, ghi]
, 就好像我在 "<|>"
上 split 了一样.我想让它打印 [abc, <def>, ghi]
.有没有办法使用一些正则表达式魔术来完成我在这里想要的东西?
也许是一个更简单的例子:
System.out.println(
Arrays.deepToString(
"Hello! Oh my!! Good bye!!".split("(?:!+)")
)
);
这会打印出 [Hello, Oh my, Good bye]
.我想让它打印 [Hello!, Oh my!!, Good bye!!]
.
`.
最佳答案
你需要看看零宽度匹配结构:
(?=X) X, via zero-width positive lookahead
(?!X) X, via zero-width negative lookahead
(?<=X) X, via zero-width positive lookbehind
(?<!X) X, via zero-width negative lookbehind
关于java - 你能在字符串拆分中使用零宽度匹配正则表达式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2406633/