LINUX.ORG.RU

Группы

 ,


0

2

Читаю себе это. Все понятно. Но когда доходит до (...), не могу понять принципа.То есть я понял, что:

на(?=доело) == надоело == на != надо
А как же все остальное? Есть ли какая-то нормальная для нубов документация? Также интересует (x)\1.



Последнее исправление: NoNameNoNumber (всего исправлений: 1)

Видишь ли, синтаксис есть синтаксис. Или ты его осваиваешь и понимаешь его, или нет. Никакая «нормальная для нубов документация» за тебя его не выучит. Тем более питоновские - да и любые, в принципе - доки как раз для нубов и предназначены.
И что именно непонятно в записи групп (...)?

Virtuos86 ★★★★★
()
Ответ на: комментарий от NoNameNoNumber

Возьми какой-то интерактивный дебаггер регекспов (есть десктопный kodos, или гугли онлайновые) и играйся.

Теорию регекспов лучше читать в книге Mastering Regular Expressions, на rutracker'е есть русский перевод.

provaton ★★★★★
()
Ответ на: комментарий от NoNameNoNumber

Например: (?<=abc) что он делает?

«<=» означает взгляд назад, не меньше либо равно же; язык регулярок это не язык программирования. Да там и из примера всё ясно. Я об этом и говорю: каждый элемент синтаксиса довольно внятно описан и снабжён иллюстрирующим примером. Читаешь что тебе конкретно нужно и практикуешься в консоли одновременно. Ну а если решил капитально освоить, тогда хз, мне непонятно зачем.

Virtuos86 ★★★★★
()
Ответ на: комментарий от provaton

в репах Debian еще есть kiki. Мне понравилось.

Действительно, самый дельный совет - хочешь разобраться в конкретном случае - бери пример и возись с ним.

frpaul ★★
()

Ну ты понел: коротное общее определение и специфика конкретного инструмента(python)

Ну ты понел: коротное общее определение и специфика конкретного инструмента(python читая его доки заметь добавление и косяки относительно общего определения)

A regular expression specifies a set of strings of charac- ters. A member of this set of strings is said to be matched by the regular expression. In many applications a delimiter character, commonly `/', bounds a regular expression. In the following specification for regular expressions the word `character' means any character (rune) but newline.

The syntax for a regular expression e0 is

e3: literal | charclass | '.' | '^' | '$' | '(' e0 ')'

e2: e3 | e2 REP

REP: '*' | '+' | '?'

e1: e2 | e1 e2

e0: e1 | e0 '|' e1

A literal is any non-metacharacter, or a metacharacter (one of .*+?[]()|\^$), or the delimiter preceded by `\'.

A charclass is a nonempty string s bracketed [ s ] (or [^s]); it matches any character in (or not in) s. A negated charac- ter class never matches newline. A substring a-b, with a and b in ascending order, stands for the inclusive range of characters between a and b. In s, the metacharacters `-', `]', an initial `^', and the regular expression delimiter must be preceded by a `\'; other metacharacters have no spe- cial meaning and may appear unescaped.

A `.' matches any character.

A `^' matches the beginning of a line; `$' matches the end of the line.

The REP operators match zero or more (*), one or more (+), zero or one (?), instances respectively of the preceding regular expression e2.

A concatenated regular expression, e1e2, matches a match to e1 followed by a match to e2.

An alternative regular expression, e0|e1, matches either a match to e0 or a match to e1.

A match to any part of a regular expression extends as far as possible without preventing a match to the remainder of the regular expression.

anonymous
()
Ответ на: комментарий от r2d2

Да, уже был там, когда вообще ничего не понимал. Теперь действительно легче как-то. Спасибо.

NoNameNoNumber
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.