gpt4 book ai didi

java - 正则表达式在除括号外的管道之间分割

转载 作者:行者123 更新时间:2023-12-01 19:46:31 24 4
gpt4 key购买 nike

我有以下文本行:

|random|[abc|www.abc.org]|1024|

我想用正则表达式将它们分成三部分

random
[abc|www.abc.org]
1024

目前使用表达式\| 可获得以下结果

random
[abc
www.abc.org]
1024

我的问题是我无法排除中间列中括号 [] 包围的管道符号。

最佳答案

如果必须使用split,可以使用正则表达式

\|(?=$|[^]]+\||\[[^]]+\]\|)

https://regex101.com/r/7OxmiY/1

它将匹配管道,然后向前查找:

$,字符串结尾,以便最后的 | 被分割,或者

[^]]+\|,非]字符,直到到达管道,确保[]内的管道将不被分割,或者

\[[^]]+\]\| - 与上面相同,除了围绕模式的文字 []

在 Java 中:

String input = "|random|[abc|www.abc.org]|[test]|1024|";
String[] output = input.split("\\|(?=$|[^]]+\\|)");

关于java - 正则表达式在除括号外的管道之间分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53061995/

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