Комментарии 35
DISCLAIMER:
— Сразу же извиняюсь перед людьми, которые у меня спрашивали о том, когда же я продолжу перевод, а я называл неверные сроки. Спланировать появление лишнего свободного времени, оказалось несколько сложнее, чем планировать время рабочее. =( Спасибо за ваше терпение и ожидание.
— После небольшого перерыва я вновь продолжаю стабильно переводить по кускам самоучитель с funtoo.org;
— Остальные материалы с funtoo.org также запланированы к переводу;
— Есть планы, по завершение перевода второй части, провести ревизию и согласование всего перевода обоих частей в целом, и выложить части у себя на сайте целиком, улучшив при этом форматирование.
— Сразу же извиняюсь перед людьми, которые у меня спрашивали о том, когда же я продолжу перевод, а я называл неверные сроки. Спланировать появление лишнего свободного времени, оказалось несколько сложнее, чем планировать время рабочее. =( Спасибо за ваше терпение и ожидание.
— После небольшого перерыва я вновь продолжаю стабильно переводить по кускам самоучитель с funtoo.org;
— Остальные материалы с funtoo.org также запланированы к переводу;
— Есть планы, по завершение перевода второй части, провести ревизию и согласование всего перевода обоих частей в целом, и выложить части у себя на сайте целиком, улучшив при этом форматирование.
По поводу регулярных выражений.
На мой, программистский взгляд, данное введение не претендует ни на полноту, ни на особую ясность в изложении темы регулярных выражений. Впрочем, видимо для «повседневных» нужд и общего ознакомления этого вполне достаточно. Но если вы все же планируете более полноценное знакомство со всей мощью регулярных выражений, или у вас более нетривиальные задачи, и планируете написать что-нибудь вроде этого:
То прочитайте любое другое руководство именно по регулярным выражениям. В сети, и на хабре в том числе, их полно,
just google it.
На мой, программистский взгляд, данное введение не претендует ни на полноту, ни на особую ясность в изложении темы регулярных выражений. Впрочем, видимо для «повседневных» нужд и общего ознакомления этого вполне достаточно. Но если вы все же планируете более полноценное знакомство со всей мощью регулярных выражений, или у вас более нетривиальные задачи, и планируете написать что-нибудь вроде этого:
(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t] )+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?: \r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:( ?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\0 31]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\ ](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+ (?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?: (?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z |(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n) ?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\ r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n) ?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t] )*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])* )(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t] )+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*) *:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+ |\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r \n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?: \r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t ]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031 ]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\]( ?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(? :(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(? :\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(? :(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)? [ \t]))*"(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]| \\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<> @,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|" (?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t] )*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\ ".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(? :[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[ \]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000- \031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|( ?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,; :\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([ ^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\" .\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\ ]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\ [\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\ r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\] |\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \0 00-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\ .|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@, ;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(? :[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])* (?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\". \[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[ ^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\] ]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)(?:,\s*( ?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\ ".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:( ?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[ \["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t ])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t ])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(? :\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+| \Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?: [^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\ ]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n) ?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[" ()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n) ?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<> @,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@, ;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t] )*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\ ".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)? (?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\". \[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?: \r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[ "()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t]) *))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]) +|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\ .(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z |(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:( ?:\r\n)?[ \t])*))*)?;\s*)
То прочитайте любое другое руководство именно по регулярным выражениям. В сети, и на хабре в том числе, их полно,
just google it.
этой регулярке скорее место в разделе Ненормальное программирование %) какой смысл писать такие небоскребы? да и пост вроде не про это ) про регулярки фридл отлично написал все
Не дай боже с таким кодом в работе столкнуться.
Вообще-то эту задачу можно решить проще и быстрее, если большую часть проверок сделать не через регулярные выражения, а по-старинке. Чрезмерное же у влечение регулярными выражениями до добра не доводит. Найти ошибку в таком весьма не тривиально. А ведь могла бы быть простая и понятная процедура с комментариями на страницу текста. И любой школьник мог бы в ней разобраться и поправить, если нужно.
я левша люблю картинки))
habrahabr.ru/blogs/regex/66931/
habrahabr.ru/blogs/regex/66931/
НЛО прилетело и опубликовало эту надпись здесь
Сей цикл статей вообще не про Gentoo. =) Просто от разработчика генту.
Я конечно могу рассказать о том, чем Gentoo отличается от freeBSD, ибо пользуюсь обоими, если кому-то это вообще интересно?
Я конечно могу рассказать о том, чем Gentoo отличается от freeBSD, ибо пользуюсь обоими, если кому-то это вообще интересно?
>чем Gentoo отличается от freeBSD
я бы послушал, несмотря на постоянно чтение материалов на данную тему
я бы послушал, несмотря на постоянно чтение материалов на данную тему
а зачем вы постоянно читаете на эту тему? =) Читай не читай, надо пробовать и исходить из решаемой задачи. Что вас конкретно интересует?, отвечу.
Кстати, а вы не владеете информацией о скорости выполнения Java-кода(64-bit) на обеих платформах?
Увы, джавой не занимаюсь совсем. Могу лишь предположить, что на gentoo будет быстрее, просто лишь на основании того, что из под gentoo многие вещи быстрее. Тут сказывается и медленная UFS и некоторая отсталость bsd ядра по сравнению с linux. Просто там, где нужно выжать максимум производительности на современном железе, я бы не стал брать bsd.
читаю по тому что интересно, генту изучаю уже года полтора, но взялся и за фряху, т.к. она имеет достаточно большое распространение, пока я не могу для себя ответить на вопрос — под какие задачи та или иная система подходит лучше, по этому и послушал бы тех, кто реально пользуется обеими системами и знает в этом толк
Лично мое мнение такое. У фряхи просто есть некоторое сообщество почитателей, и они просто предпочитают фряху не исходя из каких-то объективных причин, а потому что она им более знакома, более любима, более привычна. В конце-концов для многих задач она прекрасно подходит. И генту для этих задач так же прекрасно подходит. И тут просто дело вкуса, дело предпочтений. Но в некоторых случаях генту оказывается гораздо более предпочтительней. Тут и больше пакетов, и более развитая система их установки, и linux ядро в целом более продвинутое, чем bsd, лучше поддержка оборудования… что уж там говорить, это результат того, что сообщество linux пользователей, превосходит по размером сообщество bsd уже давно.
Я тоже выскажу свое имхо. БСД — образец простоты, понятности, четкости конфигов. Но сейчас не про это. Я лично думаю, что какая задача-такая OS. Просто под линукс некоторые задачи выполнить проще и быстрее и только именно для этих задач используется линукс.
Я бы согласился, но одно большое НО. Мало кто довольствуется базовой системой, которую предлагает freeBSD, а уже доустановленный сторонний софт, из портов, использует такие конфиги, какие решил использовать его разработчик. И как правило, конфигурирование стороннего софта, а не базовой системы, отнимает большую часть времени, а тут уж без разницы генту это или бсд.
Но в целом да, бсд как ос, проще и понятнее, наверное лучше подходит для начинающих админов. Я сам с нее начинал.
Но в целом да, бсд как ос, проще и понятнее, наверное лучше подходит для начинающих админов. Я сам с нее начинал.
Да и частенько эта простота выходит боком.
Помнится нужно было мне прикрутить fpm к php 5.3.0, когда он только появился (ни самого php 5.3, ни fpm в портах при этом не было последний вообще брался из svn). Нагуглить можно было ebuild, были некоторые устаревшие инструкции по сборке, и устаревший образец самодельного порта, но фактически для freebsd ничего толкового не было. И пришлось самим делать свой порт. Ох и навозился я тогда, и я до сих пор недоумеваю, зачем создатель порта должен прикладывать отдельно список устанавливаемых портом файлов, который фактически нужен только для зачистки, почему система сама не может отследить какие файлы были в нее установлены? А когда набор файлов сильно зависит от установленных флагов компиляции, и у тебя нету в этом деле большого опыта, выливается в головную боль. И это было самой маленькой проблемой, из тех, что я столкнулся при создании порта.
В генту у тебя просто вообще нету таких проблем. Куча сторонних ебилдов, оверлеи, можешь держать отдельные программы тестинг или даже девелопмент версий, оставляя остальную систему стейбл, и делается это все очень просто. У тебя есть emerge, eselect, equery, etc-update, и работать с набором софта, управлять зависимостями, use-флагами, просто одно удовольствие, есть такая штука как слоты. Никакие фрибсдшные portmaster-ы и portupgrade-ы тут даже близко не валялись. В целом генту взяла лучшие идеи из фрибсд и довела их до, если не совершенства, то нового уровня, с линукс-размахом.
Работая с фрибсд я себя чувствую в неких рамках этой самой простоты, и шаг влево, шаг вправо, может стать не тривиальным. Простая, как простые механизмы, но не редко нужно что-то более сложное, и тут наступает облом.
Помнится нужно было мне прикрутить fpm к php 5.3.0, когда он только появился (ни самого php 5.3, ни fpm в портах при этом не было последний вообще брался из svn). Нагуглить можно было ebuild, были некоторые устаревшие инструкции по сборке, и устаревший образец самодельного порта, но фактически для freebsd ничего толкового не было. И пришлось самим делать свой порт. Ох и навозился я тогда, и я до сих пор недоумеваю, зачем создатель порта должен прикладывать отдельно список устанавливаемых портом файлов, который фактически нужен только для зачистки, почему система сама не может отследить какие файлы были в нее установлены? А когда набор файлов сильно зависит от установленных флагов компиляции, и у тебя нету в этом деле большого опыта, выливается в головную боль. И это было самой маленькой проблемой, из тех, что я столкнулся при создании порта.
В генту у тебя просто вообще нету таких проблем. Куча сторонних ебилдов, оверлеи, можешь держать отдельные программы тестинг или даже девелопмент версий, оставляя остальную систему стейбл, и делается это все очень просто. У тебя есть emerge, eselect, equery, etc-update, и работать с набором софта, управлять зависимостями, use-флагами, просто одно удовольствие, есть такая штука как слоты. Никакие фрибсдшные portmaster-ы и portupgrade-ы тут даже близко не валялись. В целом генту взяла лучшие идеи из фрибсд и довела их до, если не совершенства, то нового уровня, с линукс-размахом.
Работая с фрибсд я себя чувствую в неких рамках этой самой простоты, и шаг влево, шаг вправо, может стать не тривиальным. Простая, как простые механизмы, но не редко нужно что-то более сложное, и тут наступает облом.
Ну я думаю фрибсд не для экспериментов, а для стабильности. А из линуксов да… Генту и Арч -меньшее из зол из-за их гибкости=)
Холиварить не хочу. Слишком много копий сломано. Я уважаю Ваше мнение но остаюсь при своем.
У меня и мысли не было Вас разубеждать. Обе системы хороши. Просто поделился своим опытом, который не всегда был приятным.
Вот если из приятного, то сразу первое, что приходит в глову — это периодика. Ежедневные, ежеденедельные и ежемесячные отчеты на мыло о состоянии системы во фре прямо из коробки, сразу после установки системы, это так приятно. ;-)
>админ сидит в Gentoo (проблемы с англ)
я один вижу в этом эм… противоречие?
я один вижу в этом эм… противоречие?
Самая рулезная книжка для обучения администрированию лежит по адресу www.admin.com
Первое издание, если не ошибаюсь, было ажно в 1995 году, этим летом вышла свежая версия. Обязательно закажу на Амазоне.
Первое издание, если не ошибаюсь, было ажно в 1995 году, этим летом вышла свежая версия. Обязательно закажу на Амазоне.
Виктор Штонда, издатель:
Уникальная книга «Unix и Linux. Руководство системного администратора», 4-е издание, Эви Немет и др. будет издана зимой 2011 года.
Уникальная книга «Unix и Linux. Руководство системного администратора», 4-е издание, Эви Немет и др. будет издана зимой 2011 года.
Супер. Пока у меня дома второе издание, книга устаревшая, но там информация вечная фактически :-)
Насторожило, что «ограниченным тиражем».
shtonda.blogspot.com/2009/08/unix-linux-administration-nemeth.html
shtonda.blogspot.com/2009/08/unix-linux-administration-nemeth.html
Кстати да. У меня есть обе вышедшие по UNIX и Linux. Они во многом дублируют друг друга, но все же действительно полезные. Только, если я не ошибаюсь, о регулярных выражениях там был самый минимум.
Всю первую часть с удовльствие прочитал, немного упорядочил свои знания :) Будем ждать перевод полного цикла.
Такими мелкими шажками нескоро экзамен получится сдать, мне так кажется.
Спасибо за перевод, хоть этого уже и навалом, но чем больше на русском документации по программированию, тем лучше.
Спасибо за перевод, хоть этого уже и навалом, но чем больше на русском документации по программированию, тем лучше.
Спасибо Вам за переводы.
У меня такой вопрос, в разделе с примерами немного не понял вот эту строку:
> b[cq]*e удовлетворяет «bbbeee» (но не в случае глоббинга)
Разве «bbbeee» удовлетворяет данному регулярному выражению? Ведь * стоит до перед символом 'e', да и, как я понимаю, * действует только на один предшествующий символ, а не на все, т.е. в данном случае любое количество раз могут появляться символы 'c' и 'q' после единственного символа 'b'.
Это просто ошибка в мануале или тонкости регулярных выражений и я что-то недопонял? :)
У меня такой вопрос, в разделе с примерами немного не понял вот эту строку:
> b[cq]*e удовлетворяет «bbbeee» (но не в случае глоббинга)
Разве «bbbeee» удовлетворяет данному регулярному выражению? Ведь * стоит до перед символом 'e', да и, как я понимаю, * действует только на один предшествующий символ, а не на все, т.е. в данном случае любое количество раз могут появляться символы 'c' и 'q' после единственного символа 'b'.
Это просто ошибка в мануале или тонкости регулярных выражений и я что-то недопонял? :)
b[cq]*e$ бы не удовлетворяло bbbeee, как и ^b[cq]*e, а ^b[cq]*e$ и подавно
но вот b[cq]*e совпадает и с bbbeee и, например, с dfdfdfdfkopjojojhbeejsdfjoisdfjaesfojisefjisoafjesfj
Подумайте над этим ;-)
но вот b[cq]*e совпадает и с bbbeee и, например, с dfdfdfdfkopjojojhbeejsdfjoisdfjaesfojisefjisoafjesfj
Подумайте над этим ;-)
Только что хотел спросить тоже самое, теперь, хотя бы, чувствую себя не самым невнимательным.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Основы Linux от основателя Gentoo. Часть 2 (1/5): Регулярные выражения