Мне нужна помощь с использованием регулярных выражений. Я прочитал заметки Java Regex , но не смог найти способ обойти мою проблему.
ПРОБЛЕМА :
У меня есть строка, которая должна быть разделена во всех случаях символов Unicode \ 0, \ 1 и \ 2.
ПРОБОВАЛИ
String msg ="foo\0foo\0bar\2foo\1horse"
msg.split("[\1\0\2]");
Вышеприведенное работает отлично (не уверен, что это правильное использование регулярных выражений), но
String msg ="foo\0foo\0bar\2foo\1horse\1123123\0123123\21"
msg.split("[\1\0\2]");
не работает правильно, так как кажется, что регулярное выражение выбирает \ 1k (с k любое целое число)
вместо просто \ 0 и \ 1 и \ 2.
Есть мысли?
решаемые :
Я обнаружил, что проблема в тестировании заключалась в том, что я использовал собственную сгенерированную строку Использование \ 1 перед числовыми значениями, сделанными String, автоматически включает \ 1k в качестве символа, а не \ 1. При чтении из моего источника, оно приходило в байтах и, следовательно, имело правильный \ 1 кодированный. При декодировании и перекодировании (вручную) я допустил ошибку. Работа с необработанными данными решила проблему.
В качестве альтернативы я использовал unicode для повторного инкодирования, и это тоже сработало.
Спасибо за ответы на все вопросы. Узнал немного о Regex и Unicode.