Да, при условии, что они поддерживают чередование, конкатенацию и звезду Клини.Это относится к регулярным выражениям типа PCRE (Perl / Java / JavaScript / PHP / ...): чередование реализуется ((...)|(...))
, конкатенация (...)(...)
, а звезда Клини - (...)*
.(Есть несколько других деталей - в большинстве этих языков вам нужно использовать что-то вроде \A
и \z
для обозначения «начала строки» и «конца строки», что в обычной грамматикесамо собой разумеющееся - но это идея.)
Но не все, что называется "регулярным выражением" в контексте программирования, обязательно содержит все вышеперечисленное;например, Базовые регулярные выражения POSIX поддерживают только очень ограниченную форму чередования, где все "ветви" чередования состоят из одного символа (например, в то время как в PCRE есть и (a|b|c)
, и специальный случай)-эквивалентный [abc]
, POSIX BRE имеют только [abc]
, поэтому не может выразить что-то вроде (ab|c)
).