Тут недавно начал разбирать регулярки, наткнулся на так званую "группу захвата" - (). В целом я понял что это делает, но тут встретил такое сравнение. Считал эти примеры эквивалентными. Но что значит это without capturing b or c. Что за захват?
a(b|c) matches a string that has a followed by b or c (and captures b or c) -> Try it!
a[bc] same as previous, but without capturing b or c
Sasha
46 уровень
Привет, ребятки)
Решен
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
ГоффMaster
8 августа 2021, 20:49решение
При чисто поиске группы захвата вроде как не релевантны. Но при замене тебе может понадобится использовать то, что было в поиске. Это можно организовать через захват. Всё, что в круглых скобках и без "?:" захватывается автоматически. Захваченные группы можно при замене добавлять в виде $1, $2 и т.д.
+2
Sasha Middle Java Developer в EPAM
8 августа 2021, 17:59
a(bc) parentheses create a capturing group with value bc -> Try it!
a(?:bc)* using ?: we disable the capturing group -> Try it!
a(?<foo>bc) using ?<foo> we put a name to the group -> Try it!
This operator is very useful when we need to extract information from strings or data using your preferred programming language. Any multiple occurrences captured by several groups will be exposed in the form of a classical array: we will access their values specifying using an index on the result of the match.
0
Sasha Middle Java Developer в EPAM
8 августа 2021, 17:57
Сам отвечу. Если не так, поправьте
0