Регулярные выражения являются средством идентификации строк текста, таких как отдельные символы, слова или образцы символов. При работе с модулем Model Review к наиболее распространенным способам их использования относятся проверка соблюдения форматов наименования или сортировка аннотации в рамках проекта с учетом конкретных данных.
В регулярных выражениях применяются специальные символы, обеспечивающую дополнительную гибкость при определении соответствия. К специальным символам относятся следующие:
+ * ? . [ ] ^ ( ) | \
В следующих разделах описан способ использования каждого из специальных символов.
Точка (".") соответствует любому одному символу.
Выражение |
Значение |
Соответствует |
Не соответствует |
390-. |
Соответствует строке "390-", за которой следует любой символ. |
390-A, 390-1, 390-- |
390-A1, 1390-1 |
Revision . Released |
Соответствует строке "REVISION ", за которой следует любой символ, а затем строка " Released" |
Revision A Released Revision 1 Released Revision # Released |
Revision A1 Released RevisionAReleased |
Квадратные скобки ("[ ]") определяют класс символов, который соответствует любому одному символу из последовательности символов в скобках. Внутри квадратных скобок все специальные символы теряют свое значение, кроме символа "^", который, будучи первым символом в скобках, означает НЕсоответствие указанным символам.
Также внутри квадратных скобок допускается использование диапазонов.
Выражение |
Значение |
Соответствует |
Не соответствует |
[akm] |
Один символ: a, k или m. |
A, K, M |
Akm, ak, G |
[a-z] |
Любая буква |
A, b, c, d |
1, 2, -, # |
[^akm] |
Один символ, если это НЕ a, k или m. |
C, f, G, Am (так как это два символа) |
A, k, m |
[0-9] |
Любая цифра |
0, 4, 7 |
A, #, z |
[a-z][a-z] |
Любые две буквы |
AB, BC, DE |
A (только одна буква) A1 12 |
Звездочка ("*") ставится после выражения, она указывает, что предшествующее выражение может присутствовать ноль или большее количество раз.
Выражение |
Значение |
Соответствует |
Не соответствует |
Ab*c |
"A", за которым следует ноль или большее количество символов "b", с "C" на конце. |
Ac Abc Abbbbbbbc |
Bbb Abcd |
[a-z]* |
Любое число любых букв (другими словами, только буквы, включая нулевые буквы) |
A Bob AAAAA Сталь <Пробел> (потому что "*" может соответствовать нулевому количеству вхождений) |
STEEL230 12 AA-## |
Знак "плюс" ("+") ставится после выражения, он указывает, что предшествующее выражение может присутствовать один или несколько раз.
Выражение |
Значение |
Соответствует |
Не соответствует |
Ab+c |
"A", за которым следует один или большее количество символов "b", с "C" на конце. |
Abc Abbbbbbbc |
Ac Bbb Abcd |
[a-z]+ |
Любое количество любых букв (другими словами, только буквы) |
Bob AAAAA Сталь |
STEEL230 12 AA-## <пробел> |
Вопросительный знак ("?") ставится после выражения для указания того, что предшествующее выражение было необязательным.
Выражение |
Значение |
Соответствует |
Не соответствует |
Ab?c |
"A", за которым следует необязательный символ "b", с "C" на конце. |
Ac Abc |
Abbc Abcd |
390-[a-z][a-z]? |
Последовательность символов "390-", за которой следует буква и вторая необязательная буква. |
390-A 390-AB |
390-11 390- 390-ABC |
Символ "вертикальная черта" ("|") выполняет функции оператора "OR" (ИЛИ) между двумя выражениями (обычно заключенными в скобки).
Выражение |
Значение |
Соответствует |
Не соответствует |
(390|241)-[a-z]+ |
Либо "390", либо "241", за которыми следует "-" и одна или несколько букв. |
390-A 241-A 241-AB |
200-A 241 241- |
As per (MS2377|CS123) |
Строка "As per " (Согласно), за которой следует "MS2377" или "CS123" |
As per MS2377 As per CS123 |
As per As per MS3222
|
390-([abc]|[123]) |
Последовательность символов "390-", за которой следуют буквы "a", "b" либо "c" ИЛИ цифры "1", "2" либо "3". |
390-A 390-3 |
390-F 390- |
Если требуется фактическое сопоставление с символом, относящимся к "специальным символам", обратная косая черта перед специальным символом указывает программе Model Review, что символ следует трактовать буквально (а не как специальный символ).
Выражение |
Значение |
Соответствует |
Не соответствует |
[0-9]\+ |
Цифра, за которой следует знак "+". |
1+ 2+ |
1 A 1+1 |
What\? |
Слово "What" (Что), за которым следует вопросительный знак. |
What? |
What's Up? |
Распространенная задача для программы Model Review — обеспечить определенный начальный или конечный символ. Этот синтаксис непривычен для пользователей, применяющих регулярные выражения для поиска. Рекомендуемый подход заключается в использовании символов ".*" или ".+" в начале или в конце выражения, которые обозначают "начинается с" или "заканчивается на".
Выражение |
Значение |
Соответствует |
Не соответствует |
390-.* |
Начинается с "390-" (заканчивается любыми символами, включая пробел). |
390-1 390-111 |
1390-1 |
390-.+ |
Начинается на "390-" (заканчивается любыми символами, но должен присутствовать хотя бы один символ). |
390-1 390-111 |
1390-1 390- |
.*-[a-z] |
Заканчивается дефисом ("-") и буквой (начинается с любых символов, включая пробел). |
Revision-A Rev-A -A |
Revision-A1 Rev-1 123 -1 |
.+-[a-z] |
Заканчивается дефисом ("-") и буквой (начало любое, но должен присутствовать хотя бы один символ). |
Revision-A Rev-A |
Revision-A1 Rev-1 123 -1 -A |
Регулярные выражения — это мощный (но несколько сложный) способ поиска соответствий в тексте. Для формирования более сложных требований пользователю придется набраться опыта в объединении нескольких выражений в сложное выражение.
Далее приводятся некоторые примеры сложных выражений.
Выражение |
Значение |
Соответствует |
Не соответствует |
[0-9]+[-]?[0-9]+ |
Числа с необязательным дефисом между ними. |
123-45 12345 |
12A32 1232-A A |
.*[^_] |
Не может заканчиваться символом подчеркивания (_). |
123324 PART1 |
12343_ |
(390|231)-[a-z0-9]+-[0-9]+ |
Либо 390, либо 231, за которым следует "-", последовательность букв и цифр, состоящая хотя бы из одного символа, затем "-" и хотя бы одна цифра. |
390-mypart-1 231-bracket-99 |
120-mypart-1 380- - |