【发布时间】:2018-12-01 11:56:48
【问题描述】:
我正在努力寻找在 Java 中使用带有多个字符的分隔符来拆分字符串的正确方法(例如 '.[1a]' 或 '.(2b)')
这是一个测试用例:
String str1 = "This is test 1 . This is test 2 [2 b]. This is test 3 (3). This is test 4.[4a] This is a test 5 . This is test 6 . (6,six)";
Pattern regex = Pattern.compile("\\.\\s{0,}\\[.*\\]\\s{0,}|\\.\\s{0,}\\(.*\\)\\s{0,}|\\.\\s{0}");
System.out.println(Arrays.toString(regex.split(text)));
我的目标输出如下(每个子字符串开头或结尾的空格都可以,重要的是保留分隔符):
[这是测试 1。 , 这是测试 2 [2 b]。 , 这是测试 3 (3)。 , 这是测试 4.[4a] ,这是测试 5 。 , 这是测试6。 (6,6)]
但是,这是我得到的输出:
[这是测试 1,这是测试 2 [2 b],这是测试 3 (3),这是 测试4,这是测试5,这是测试6]
还尝试删除“\\s”,这是Pattern.compile("\\s+\\[.?\\]\\s+\\.|\\s+\\(.?\\)\\s+\\.|\\.\\s+") 等空格的不同表示法,并尝试使用Pattern.compile("(?<=[.[*]\\s+])|(?=[.(*)]\\s+)|\\.") 之类的前瞻,但都没有帮助:|
【问题讨论】:
标签: java regex regex-lookarounds