Я не понимаю, почему все остальные предлагают такие сложные регулярные выражения или такой длинный код. По сути, вы хотите захватить два типа вещей из вашей строки: последовательности символов, которые не являются пробелами или кавычками, и последовательности символов, которые начинаются и заканчиваются цитатой, без кавычек между ними, для двух видов кавычек. Вы можете легко сопоставить эти вещи с этим регулярным выражением:
[^\s"']+|"([^"]*)"|'([^']*)'
Я добавил группы захвата, потому что вам не нужны кавычки в списке.
Этот код Java создает список, добавив группу захвата, если она соответствует, чтобы исключить кавычки, и добавление общего соответствия регулярному выражению, если группа захвата не совпала (несогласованное слово было сопоставлено).
List<String> matchList = new ArrayList<String>();
Pattern regex = Pattern.compile("[^\\s\"']+|\"([^\"]*)\"|'([^']*)'");
Matcher regexMatcher = regex.matcher(subjectString);
while (regexMatcher.find()) {
if (regexMatcher.group(1) != null) {
// Add double-quoted string without the quotes
matchList.add(regexMatcher.group(1));
} else if (regexMatcher.group(2) != null) {
// Add single-quoted string without the quotes
matchList.add(regexMatcher.group(2));
} else {
// Add unquoted word
matchList.add(regexMatcher.group());
}
}
t mind с кавычками в возвращенном списке, вы можете использовать гораздо более простой код:
List<String> matchList = new ArrayList<String>();
Pattern regex = Pattern.compile("[^\\s\"']+|\"[^\"]*\"|'[^']*'");
Matcher regexMatcher = regex.matcher(subjectString);
while (regexMatcher.find()) {
matchList.add(regexMatcher.group());
}
@ j.xiang,
Я настоятельно рекомендую вам прочитать: Документы MDN относительно позиционирования. Чтобы ответить на ваш вопрос о том, почему ваш код не работает и почему:
Абсолютно позиционированный элемент больше не существует в обычном потоке макета документа. Вместо этого он находится на своем собственном слое отдельно от всего остального. Это очень полезно: это означает, что мы можем создавать отдельные функции пользовательского интерфейса, которые не влияют на положение других элементов на странице. Например, всплывающие информационные окна и управляющие меню; опрокидывающиеся панели; Функции пользовательского интерфейса, которые можно перетаскивать в любое место на странице; и так далее ...
Во-вторых, обратите внимание, что положение элемента изменилось - это потому, что верхнее, нижнее, левое и правое ведут себя по-разному с абсолютным позиционированием. Вместо указания направления, в котором должен перемещаться элемент, они указывают расстояние, на которое должен быть элемент, от сторон каждого содержащего элемента. Таким образом, в этом случае мы говорим, что абсолютно позиционированный элемент должен располагаться в 30 пикселях от вершины «содержащего элемента» и в 30 пикселях слева.
blockquote>Теперь вы, возможно, уже были знакомы с приведенным выше утверждением, которое подводит нас к причине и контексту позиционирования.
Если ни один из элементов-предков не имеет явно определенного свойства положения, то по умолчанию все элементы-предки будут иметь статическую позицию. В результате абсолютно позиционированный элемент будет содержаться в начальном содержащем блоке. Начальный содержащий блок имеет размеры области просмотра, а также является блоком, который содержит элемент. Проще говоря, абсолютно позиционированный элемент будет содержаться вне элемента и позиционируется относительно исходного окна просмотра.
Позиционированный элемент вложен в источник HTML, но в окончательном макете он находится на расстоянии 30 пикселей от верхнего и левого края края страницы. Мы можем изменить контекст позиционирования - к какому элементу позиционируется абсолютно позиционированный элемент. Это делается путем установки позиционирования на одном из предков элемента - на один из элементов, внутри которого он вложен (вы не можете расположить его относительно элемента, внутри которого он не вложен). Чтобы продемонстрировать это, добавьте следующую декларацию в ваше правило тела:
blockquote>position: relative;
Поэтому добавление
position: relative;
в ваш класс.act
должно решить вашу конкретную проблему.Надеюсь, это поможет, снова начните читать на сайте MDN , это бесценный ресурс.