ЛОГИЧЕСКИЙ ТИП. ЛОГИЧЕСКИЕ ВЫРАЖЕНИЯ. ЛОГИЧЕСКИЙ ОПЕРАТОР ПРИСВАИВАНИЯ


Лекция № 11

Модификаторы к 1 шаблону.

Специальные символы.

Язык описания регулярных выражений — шаблонов.

Пример программы.

 

Print («hello world»);

function print (s);

{

wscript.echo(s);

}

В базовый синтаксис входят регулярные выражения.

Это возможность, используя шаблоны, разобрать текст.

 

Любой символ (кроме спец. символов) совпадает с собой.

 

Пример: Есть шаблон аааb

Есть строка — 25ааа4асаb51+3аbаааb

шаблон буден найден 1 раза.

 

. - специальный символ — совпадет с любым символом

а.ab — с такой шаблон в строке 25ааа4асаb51+3аbаааb

будет найден 2 раза.

. — совпадет с любым символом

\d — совпадает с любой цифрой

\D — совпадает с любой не цифрой

\w — совпадает с любой буквой или цифрой, включая символ «_»

\W — не совпадает со всем перечисленным в \w

\s — совпадает с любым пробельным символом

\S — совпадает с любым не пробельным символом

[abcd] — это одно знакоместо и значит, что на этом знакоместе может стоять 1 из перечисленных символов

[^abcd] — на этом знакоместе может стоять все, что угодно, кроме того, что здесь перечислено

[a-z] — любая маленькая латинская буква

[a-zA-Z] — любая латинская буква

[a-zA-Z0-9_] = \w

Два любых шаблона, разделенных |означает или то, или то. (a.ab | \d\d)

( ) - группировка // (ab|ba)c = abc или bac.

 

(пишутся в конце)

 

? - означает, что единица, к которой он относится, может присутствовать, может не присутствовать.

(ab?|ba)?c = c, abc, bac, ac

* - означает, что единица, к которой он относится, может отсутствовать или присутствовать любое число раз подряд

(ab*|ba)?c = c, abc, bac, ac, abbbb...c

([a-z]\d*)

+ - единица должна присутствовать один или более число раз

{n}

правильная дата: \d\d\.\d\d\.\d{4} = \d\d\.\d\d\.\d\d\d\d

{n, m} — единица может встречаться от n до m раз

{n, } — единица встречается не менее n раз

{ , m} — не более m раз

* = {0, }; + = {1, }; ? = {0, 1};

(?: ) - используется для сверки с шаблоном, но не для вырезания.

...(?=.....): - после первого шаблона должен идти второй, но в первый шаблон он не входит.

\х▬ ▬ - символ, который не печатается с клавиатуры, тогда пишем \х_ _ - 16-ый код символа

\х20 — пробел

// можно в десятичной системе \153

 

$ - совпадает с началом строки

^ - совпадает с концом строки

\b — не знакоместо — граница между словом и пробелом (\bA\b — одиночное А)

\B — отрицание \b (\BА\В — А окруженное любыми буквенными и не пробельными символами.)

 

 

Для хранения результатов логических выражений существует тип данных Boolean (булев).

Логический тип (boolean) имеет лишь два значения: true (1 – истинно) и false (0 – ложно).

Слова false и true – это логические константы языка.

 

В программах возможно вводить константы и переменные этого типа. Например:

const b = true;

var c : boolean;

 

Логическое выражение – это способ записи на языке программирования условий для поиска необходимых данных.

 

Простое логическое выражение –это два операнда, которые объединены операцией сравнения (операцией отношения).

Операции сравнения:

> (больше), < (меньше), = (равно), <> (не равно),

>= (больше или равно или не меньше ), <= (меньше или равно или не больше).

Например:

Пусть х = 3, y = –9.

Простые логические выражения:

х = 3 ® true (истинно); х < y ®;

х+1<y ® false (ложно).


 

Сложное логическое выражение – это логическое выражение, которое записано с помощью булевих операций.

 

Булевы операции:

not – логическое отрицание («логическое НЕ»),

and – логическое умножение («логическое И»),

or – логическое сложение («логическое ИЛИ»),

xor – сложение по модулю 2 («исключающее ИЛИ»).

 

Слова not, and, or и xor, что обозначают булевы операции, являются зарезервированными словами.

Таблица истинности

A B not A   A and В A or B A xor B
НЕ И * ИЛИ + исключающее ИЛИ
true true false true true false
true false false false true true
false true true false true true
false false true false false false

 


Операция отрицания всегда дает противоположное исходному значению.

Операция И дает в результате истинное значение только в том случае, когда оба связанные ею операнда истинны.

Операция ИЛИ дает в результате истинное значение, если хотя бы один из операндов есть истинным, а исключительное ИЛИ дает в результате истинное значение , если только один из операндов является истинным.

Например:

Пусть х = 3, у = –9. Сложные логические выражения:

not (y<= –50) ® not false ® true

Двойное неравенство 1<х<5 записывают как сложное логическое выражение:

(1 < x) and (x <5), если x=3, то (1 < x) = true, (x <5)= true, true and true = true

Пусть есть сложное логическое выражение:

(x > 4) or (y >-15), если x=3, y= -9, то (x > 4) = false,

(y >-15)= true,

false or true = true