Я пытаюсь разбить символы строки на массив строк. Я нашел решение here.string.split ("(?! ^)") Описание
Решение идеально, но я не понимаю, как работал .split("(?!^)")
. Я знаком с основами метода split()
. Может ли кто-нибудь дать объяснение?
Я пытаюсь разбить символы строки на массив строк. Я нашел решение here.string.split ("(?! ^)") Описание
Решение идеально, но я не понимаю, как работал .split("(?!^)")
. Я знаком с основами метода split()
. Может ли кто-нибудь дать объяснение?
(?!^)
- regular expression, состоящий из negative lookahead. ^
- это anchor, используемый для обозначения начала строки. (?!^)
соответствует всем строкам длины 0, за которыми не следует ^
, начало строки. Другими словами, он соответствует всем 0-строчным строкам , кроме, что в начале строки.
Например, в строке abc
, будет 3 совпадений: один между a
и b
, один между b
и c
, и один после c
. Разделение на эти совпадения дает желаемый массив (обратите внимание, что версия с 1 аргументом split()
отбрасывает любые завершающие пустые строки, поэтому ни один из них не включен в результирующий массив).
Спасибо за объяснение, особенно ссылки ссылки. Моя книга никогда не охватывала этот материал, поэтому, я думаю, я не могу использовать его в классе. – kir
@ user2280704 Без проблем, рад, что я мог бы помочь. Я лично никогда не буду использовать этот подход, поскольку он просто неясен и не нужен. Я бы предпочел регулярный цикл для создания массива. – arshajii
Взгляните на Javadoc из класса шаблонов http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html – Julien
Добро пожаловать в мир регулярных выражений – fujy
Метод разделения берет представление'String 'регулярного выражения в качестве аргумента. Дополнительная информация [здесь] (http://docs.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html). Взгляните на взгляды, особенно в вашем случае. – Mena