Processing:Справочник языка Processing/matchAll(): различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
Строка 10: Строка 10:
==Обозначение==
==Обозначение==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
matchAll()
matchAll()
</syntaxhighlight>
</syntaxhighlight>
Строка 26: Строка 26:
==Синтаксис==
==Синтаксис==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
matchAll(srt, regexp)
matchAll(srt, regexp)
</syntaxhighlight>
</syntaxhighlight>
Строка 32: Строка 32:
==Параметры==
==Параметры==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
str    – строка, которую нужно найти. Тип данных – String
str    – строка, которую нужно найти. Тип данных – String
regexp – регулярное выражение для поиска совпадений. Тип данных – String
regexp – регулярное выражение для поиска совпадений. Тип данных – String
Строка 39: Строка 39:
==Возвращаемое значение==
==Возвращаемое значение==


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
Массив String[].
Массив String[].
</syntaxhighlight>
</syntaxhighlight>
Строка 45: Строка 45:
==Пример==
==Пример==


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
String s = "Inside tags, you will find <tag>multiple</tag> ";
String s = "Inside tags, you will find <tag>multiple</tag> ";
       //  "Внутри тегов вы найдете <tag>множитель</tag>"
       //  "Внутри тегов вы найдете <tag>множитель</tag>"

Версия от 18:37, 14 мая 2023


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


Черновик


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[].

Пример

String s = "Inside tags, you will find <tag>multiple</tag> ";
       //  "Внутри тегов вы найдете <tag>множитель</tag>"
       s += "<tag>pieces</tag> of <tag>content</tag>.";

String[][] m = matchAll(s, "<tag>(.*?)</tag>");
for (int i = 0; i < m.length; i++) {
  println("Found '" + m[i][1] + "' inside a tag.");
}

// Напечатает в консоли: 
// "Found 'multiple' inside a tag."
// "Found 'pieces' inside a tag."
// "Found 'content' inside a tag."

См.также

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