У меня есть строка, которую нужно разделить на части с помощью # | как разделитель. В некоторых случаях # | # | тоже появляется. Это тоже может повторяться несколько раз.
Пример строки:
kh73j563741043f4611144u3ol#|h73j5637411432vk651p4601#|sadf#|12342134#|ADHVSF#|1#|0#|0#|DFSFS#|SDFSBFSF#|2017-07-03 19:56:37.0#|3#|6#|#|SDJHSJKDSDKSDS ODHDO ODHSUDSD 34234234 PODSOF pfjfs
Что я написал:
String input [] = line.split("\\#\\|");
Приведенный выше код разделяет ввод на 13 разных строк, но приведенный выше код не работает для последней строки, где "# | # |" используется как разделитель.
Как мне сделать REGEX, который может передавать несколько экземпляров # | как делиметр?




Вы можете обернуть паттерн группой без захвата и установить после нее квантификатор +:
.split("(?:#\\|)+")
См. демонстрация регулярного выражения
Теперь (?:#\\|)+ соответствует 1 или нескольким последовательным вхождениям двухзначной последовательности, # и |. Обратите внимание, что вам не нужно экранировать # (если вы не хотите использовать параметр Pattern.COMMENTS (и он вам не понадобится здесь с таким коротким шаблоном).