У меня есть строка, подобная следующей:
String s = 100[leetcode].
Могу ли я разделить его на массив строк с помощью метода split()
?
String[] arr = s.split("\\s*]+\\s*");
Таким образом, результирующий массив становится:
["100"] ["["] ["leetcode"] ["]"].
Я не могу понять правильное регулярное выражение, необходимое для этого. Кто-нибудь может помочь в этом?
1
Arpan Das
28 Окт 2019 в 19:02
1 ответ
Одним из вариантов может быть использование обходных путей
(?<=\S)(?=[\[\]])|(?<=[\[\]])(?=\S)
(?<=\S)
Положительный просмотр назад, если то, что находится слева, не является пробельным символом(?=[\[\]])
Положительный просмотр вперед, если то, что справа, равно[
или]
|
Или(?<=[\[\]])
Положительный просмотр назад, f то, что слева, либо[
, либо]
(?=\S)
Положительный просмотр вперед, если то, что находится справа, не является пробельным символом
демонстрация регулярных выражений | демонстрация Java
Например в Java
String s = "100[leetcode]";
String[] arr = s.split("(?<=\\S)(?=[\\[\\]])|(?<=[\\[\\]])(?=\\S)");
1
The fourth bird
28 Окт 2019 в 19:12
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.
(?<=\S)(?=[\[\]])|(?<=[\[\]])(?=\S)
regex101.com/r/PlhVOr/1 См. ideone.com/5KZeAN