П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 182739 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 82233 раз(а).

Учебник HTML.
Просмотров 77153 раз(а).

Руководство по PHP5.
Просмотров 48085 раз(а).

Хостинг через призму DNS.
Просмотров 55605 раз(а).

Подборка текстов стандартных документов.
Просмотров 47431 раз(а).

Учебник PHP - Самоучитель
Просмотров 53921 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 54815 раз(а).

Внешние атаки...
Просмотров 44387 раз(а).

Учебник PHP.
Просмотров 39579 раз(а).

SSI в примерах.
Просмотров 29425 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Руководство пользователя для GNU Awk

4. Регулярные выражения

4.6 Как много текста учитывается при определении соответствия?

Рассмотрим следующий пример:

echo aaaabcd -- awk '- sub(/a+/, "!A?"); print ""'

В нем используется функция sub (которую мы еще не обсуждали, см. раздел 12.3 [Встроенные функции для действий с цепочками], стр. 137) для изменения входной записи. Здесь regexp /a+/ означает "один или больше символов `a' " а замещающий текст есть `!A?'.

Ввод содержит четыре символа `a'. Каков будет результат? Другими словами, сколько "один или больше" будет учитывать awk, два, три или все четыре `a' ?

Ответ таков. Регулярные выражения в awk (и POSIX) всегда учитывают самую левую и самую длинную цепочку входных символов для соответствия. Поэтому в нашем примере все четыре символа `a' заменяются на `!A?'.


$ echo aaaabcd -- awk '- sub(/a+/, "!A?"); print ""'

a !A?bcd

Для простых тестов соответствует/не соответствует это не так важно. Но при обработке полей и расщеплении записей, при определении соответствия текстов и подстановок с помощью функций match, sub, gsub и gensub это очень важно. Понимание этого принципа также важно для опирающихся на regexp записей и разделения полей (см. раздел 5.1 [Как вход разделяется на записи], стр. 37, а также раздел 5.5 [Указание того, как разделяются поля], стр. 44).

Назад | Вперед
Содержание (общее) | Содержание раздела



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru