JAVA - разделить строку, содержащую разделитель # | . Строка также должна разделиться, если есть несколько случаев # | нравится - # | # |

У меня есть строка, которую нужно разделить на части с помощью # | как разделитель. В некоторых случаях # | # | тоже появляется. Это тоже может повторяться несколько раз.

Пример строки:

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, который может передавать несколько экземпляров # | как делиметр?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
69
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете обернуть паттерн группой без захвата и установить после нее квантификатор +:

.split("(?:#\\|)+")

См. демонстрация регулярного выражения

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

Другие вопросы по теме