"Нежадные" регулярные выражения
при поиске (123)+? получим только 123, а не 123123123
в перле, например, регулярные выражения по умолчанию жадные
UPd. хотя, наверное, ты не об этом спрашиваешь, это слишком просто видимо, вопрос в тупости применения слова "жадный" к данным паттернам... или еще чего
> при поиске (123)+? получим только 123, а не 123123123
Чем "нежадное" "(123)+" отличается от "123"?
Но самое главное --- чем "нежадное" "1{10}" отличается от _обычного_?
Если они через "нежадность" вводят откаты назад,
например, при обработке ".*a" (именно через _откат_,
я понимаю, что можно такое сделать и р. в. то какие это,
к чёрту, регулярные выражения?
---
...Я работаю...
На перле можно записать и нерегулярные выражения, для тебя это новость?
> для тебя это новость?
Мне очень не нравится, что регулярными выражениями
называют всё подряд, это мешает использовать поиск.
---
...Я работаю...
Чем "нежадное" "(123)+" отличается от "123"?Пример:
рег. выражение: "456(123)+?456"
строка: "456123123456"
> рег. выражение: "456(123)+?456"
> строка: "456123123456"
Повторяю вопрос.
Оно его делает именно как регулярное или через откат?
---
...Я работаю антинаучным аферистом...
Применяется прежде всего для выделения периода (по крайней мере, у меня..).
Оно его делает именно как регулярное или через откат?На сколько я себе представляю, это можно делать без откатов.
Разница видна?
---
"Истина всегда конкретна."
Я спрашиваю не о том, как "можно", а о том, как _есть_.Если бы это было так, то ты спрашивал бы о том, как есть _там-то_ или _там-то_. Потому, что за все библиотеки тебе никто же отвечать не будет.
Разница видна?
Заранее скажу, что этим вопросом не интересовался.
> как есть _там-то_ или _там-то_.
Про перл не я первый сказал.
Ну, ещё PCRE интересуют.
> Заранее скажу, что этим вопросом не интересовался.
Ясно.
---
...Я работаю...
Про перл не я первый сказал.Я тоже про перл ничего не говорил.
---
"Рот фронт, группенфюрер..."
Фридл Регулярные выражения Mastering Regular Expressions
И даже не одно издание.
там вроде было как это работает
Зато по-перловски написал.Разве? По-моему, ещё как минимум grep такую нотацию поддерживает.
Поддерживать-то поддерживает, только "A+?" означает то же, что и "A*":
$ echo 112112 | egrep '^.+?2$'
112112
маны читать надо, ибо рулез.
---
"Аллах не ведёт людей неверных."
Вот же как оно. И sed тоже себя так ведёт. Я жил в неведении.
$ echo 112112 | egrep '^.+?2$'Э-э-э... меня глючит, или тут жадный, нежадный - без шансов?..
112112
---
...Я работаю антинаучным аферистом...
нежадность означает, взять как можно меньше, но при этом постараться что бы совпадение произошло.
Впрочем, поскольку grep не поддерживает нежадность, для него запись
^.+?2$означает
^(.+)?2$
+1. тоже этот пример не осилил, но побоялся контре отвечать.
+1. тоже этот пример не осилил, но побоялся контре отвечать.
Пример некорректный, но суть дела с grep это не менят.
Оставить комментарий
Ivan8209
Объясните, как может быть такое:Пишут --- не думают.
---
...Я работаю...