ГОСТ Р ИСО 13606-2—2012
П р и м е ч а н и е — Первый пример ограничивает значение времени исполнения атрибута species некото
рого объекта значением "platypus’: второй пример ограничивает его значением “platypus’ или ’kangaroo’ и т. д.
Почти во всех случаях данный вид строкового ограничения не должен применяться, так как он делает тело архе
типа зависимым от языка, за исключением собственных имен, которые обычно стандартизованы в международ
ном масштабе.
8.2.4.2.3 Регулярное выражение
Вторым способом ограничения строк являются регулярные выражения. Синтаксис регулярных выра
жений допустим подмножеством синтаксиса, используемого в языке Perl. В языке cADL приняты три вари
анта синтаксиса:
string_attr matches {/regular expression/}
string_attr matches {=- /regular expression/}
string_attr matches {!- /regular expression/}
Первыедва варианта идентичны. Они указывают на то. что значение атрибута должно соответство
вать данному регулярному выражению. Третий вариант указывает на то. что значение не должно соответ
ствовать данному выражению.
Если в шаблоне требуется ограничивающий символ, то перед ним должен быть поставлен символ
«обратная косая черта» (\). Можно также применятьдругие ограничители, с которыми шаблоны будут более
понятными.
П р и м е ч а н и е — Типичным примером являются регулярные выражения, включающие единицы измере
ния: ниже приведены два эквивалентных шаблона:
units matches {/km\ /h|mi\ Ihf)
units matches {,’km/h|mi /h*}
В языке cADL поддерживаются следующие шаблоны регулярных выражений.
Атомарные элементы
точка соответствует любому одиночному символу, например. /... / соответствует любым трем сим
волам. расположенным между пробелами;
[xyz]соответствует любому символу из набора xyz (с учетом регистра), например. /[0-9}/ соответствует
любой строке, содержащей одну десятичную цифру;
[а-m] соответствуетлюбому из символов сплошного диапазона от а до m (сучетом регистра), например.
/[0-9}/ соответствует любой строке, состоящей из одиночного символа, представляющего деся
тичную цифру. /[S-Z}/ соответствует любому одиночному символу из диапазона S - Z;
[Ла -т] соответствует любому символу, к роме тех, что попадают в сплошной диапазон от а до т . напри
мер, /[А0-9}/ соответствует любой строке, состоящей из одиночного символа, которым не является
десятичная цифра.
Группировка
(pattern) для группировки элементовиспользуются круглыескобки; любой шаблон, расположенный внутри
круглых скобок, рассматривается какатомарный элемент для операторов вхождения, например,
/([0—9][0—9]У соответствует любому двузначному числу.
Вхождения
*соответствует ни одному или нескольким вхождениям предшествующего атомарного элемента,
например./.*/ соответствует любой непустой строке. /[a-z}7 соответствуетлюбой непустой строке
английских букв на нижнем регистре:
+соответствует одному или нескольким вхождениям предшествующего атомарного элемента, нап
ример, /а.+/соответствует любой строке, начинающейся с символа а. за которым следует, по край
ней мере, еще один символ;
?соответствует ни одному или одному вхождению предшествующего атомарного элемента, напри
мер. /аЬ?/ соответствует строкам а и ab:
(m.n) соответствует от m до п вхождениям предшествующего атомарного элемента, например. /аЬ{1,3}/
соответствует строкам ab. abb и abbb. /[a-z}{1,3}/ соответствует всем буквенным строкам на ниж
нем регистре длиной отодного до трех символов:
{т,}соответствует, по крайней мере, m вхождениям предшествующего атомарного элемента:
{,п}соответствует не более чем п вхождениям предшествующего атомарного элемента;
{т}соответствует точно m вхождениям предшествующего атомарного элемента.
73