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

Что такое "регулярные выражения"?

Регулярные выражения являются средством идентификации строк текста, таких как отдельные символы, слова или образцы символов.  При работе с модулем 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- -