您可以在字符串拆分中使用零宽度匹配正则表达式吗?

2024-01-08

System.out.println(
    Arrays.deepToString(
        "abc<def>ghi".split("(?:<)|(?:>)")
    )
);

这打印[abc, def, ghi],就好像我已经分裂了"<|>"。我想要打印[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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

您可以在字符串拆分中使用零宽度匹配正则表达式吗? 的相关文章

随机推荐