Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Processing:Справочник языка Processing/matchAll()

Материал из Онлайн справочника
Перейти к: навигация, поиск


Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Ambox content.png Черновик


matchAll() [1]

Обозначение

matchAll()

Описание

Используется для поиска совпадений в тексте при помощи регулярного выражения. Возвращает список совпадений в виде двухмерного массива значений String. Регулярное выражение можно задать группами, и в этом случае каждая группа будет помещена внутри скобочек. Если совпадений нет, метод вернет нулевое значение. Если в регулярном выражении не будет групп, но метод найдет совпадение, то вернет его в виде двухмерного массива, однако второе измерение массива будет иметь длину 1.

Сначала проверьте, не дает ли этот метод нулевой результат. Если дает, то по заданному вами тексту никаких совпадений нет. Если же совпадения есть, метод вернет двухмерный массив.

Если в регулярном выражении есть группы (они указываются при помощи отдельных скобочек), метод вернет массив с содержимым каждой из этих групп. Представьте цикл, имеющий переменную счетчика i – тогда элемент [i][0] регулярного выражения вернет всю искомую строку. Группы регулярного выражения начинаются с элемента [i][1]. Таким образом, первая группа – это [i][1], вторая группа – это [i][2] и т.д.

О синтаксисе метода можно почитать в документации Java о классе Pattern. О синтаксисе регулярного выражения можно почитать в этом руководстве Java.

Синтаксис

matchAll(srt, regexp)

Параметры

str    – строка, которую нужно найти. Тип данных – String
regexp – регулярное выражение для поиска совпадений. Тип данных – String

Возвращаемое значение

Массив String[].

Пример

  1. String s = "Inside tags, you will find <tag>multiple</tag> ";
  2.        //  "Внутри тегов вы найдете <tag>множитель</tag>"
  3.        s += "<tag>pieces</tag> of <tag>content</tag>.";
  4.  
  5. String[][] m = matchAll(s, "<tag>(.*?)</tag>");
  6. for (int i = 0; i < m.length; i++) {
  7.   println("Found '" + m[i][1] + "' inside a tag.");
  8. }
  9.  
  10. // Напечатает в консоли:
  11. // "Found 'multiple' inside a tag."
  12. // "Found 'pieces' inside a tag."
  13. // "Found 'content' inside a tag."

См.также

Внешние ссылки

  1. processing.org - matchAll()