Showing posts with label текст. Show all posts
Showing posts with label текст. Show all posts

Friday, 17 September 2021

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

Всем привет.

Есть такая штука как Регулярные выражения. Тот кто ими пользуется знает что это как еще один язык выучить. И их знание не абы какой плюс при приеме на работу. Но все равно диалекты регулярных выражений в контексте других языков программирования могут быть разными. Я ими пока не владею, потому что "я ведь не волшебник, я только учусь".

А пока могу рекомендовать отличные курсы по регулярным выражениям, на которых страдаю сам:

1. Using Regular Expressions with Kevin Skoglund, lynda.com | Using Regular Expressions (2011).

2. Jeffrey Way - Regular Expressions - Up And Running,

http://code.tutsplus.com/courses/regular-expressions-up-and-running

И на сегодня для вас небольшая шпаргалка по использоваию регулярок с JavaScript.

<script type="text/javascript">

//Создание

var pattern = new RegExp(pattern [, flags]); //Полная форма

var pattern = /pattern/flags; //Сокращенная форма записи (литеральный формат)

//Динамическое создание регулярного выражения

var emails = ['gmail', 'yahoo', 'hotmail', 'live', 'rambler'];

var re = new RegExp(emails.join('|', 'i')); //gmail|yahoo|hotmail|live|rambler/i

/**

где pattern — шаблон регулярного выражения,

     flags — способ поиска, может принимать:

          g — глобальный поиск (обрабатываются все совпадения с шаблоном поиска);

          i — не различать строчные и заглавные буквы;

          m — многострочный поиск.

*/

</script>

Wednesday, 21 October 2020

Sed - потоковый редактор текстовых файлов.


Всем привет.

Говорят что bash без применения утилит обработки текста sed и awk такой же скучный как осенний дождливый день. Однако чтобы разогнать тучи надо совсем немного - научиться понимать простейшие конструкции sed и awk и нескольких базовых команд.

Мы напомним что sed это неинтерактивный редактор текстовых файлов, а аwk - это язык обработки шаблонов с C-подобным синтаксисом. 

При всех своих различиях, эти две утилиты обладают похожим синтаксисом, они обе умеют работать с регулярными выражениями, обе, по-умолчанию, читают данные с устройства stdin и обе выводят результат обработки на устройство stdout. Обе являются утилитами UNIX-систем, и прекрасно могут взаимодействовать между собой. Вывод от одной может быть перенаправлен, по конвейеру, на вход другой. Их комбинирование придает сценариям, на языке командной оболочки, мощь и гибкость языка Perl.

Сегодня мы рассмотрим sed, а аwk будет позже. 

Базис.

Итак sed - потоковый редактор, который работает со строками. Параметры его потоков это:

* строка на входе (Input Stream)

* строка в оперативной ячейке (Pattern Space)

* буфер, в который можно поместить или добавить строку (Hold Buffer)

* строка на выходе (Output Stream)


Все команды sed - это буквы:

a b c d D g G h H i n N p P q Q r s t w x y =

Каждая - определяет некоторую операцию. Как правило, большинство команд sed применяются

к оперативной ячейке и выходному потоку. Т.е. если мы напишем что-то типа

sed -r 's/file/replace/' file.txt,

то подразумевается, что замена происходит для строки, находящейся в оперативной ячейке.


Для входного потока действуют только две команды:

n - взять строку и поместить ее в оперативную ячейку

N - взять строку и добавить ее к оперативной ячейке


На буфер влияют еще три команды

h - поместить оперативную ячейку в буфер

H - добавить оперативную ячейку к буферу

x - обменять местами буфер и оперативную ячейку

Версия на печать

Популярное