Expressões regulares

O que são Expressões regulares?

Expressões regulares fornecem uma forma de identificar sequências de texto como caracteres em particular, palavras ou padrões de caracteres. Com o Model Review, alguns dos usos mais comuns são a aderência às convenções de nomenclatura ou para classificar através de anotações no modelo do projeto para informações muito especificas.

Caracteres especiais

As expressões regulares empregam caracteres especiais para fornecer mais flexibilidade ao definir coincidências. Os "caracteres especiais" são:

+ * ? . [ ] ^ ( ) | \

A seção a seguir descreve como usar cada um dos caracteres especiais:

Ponto

Um ponto (".") irá coincidir com qualquer caractere.

Expressão

Significado

Coincide

Não coincide

390-.

Coincide a sequência "390-" seguida por qualquer caractere.

390-A, 390-1, 390--

390-A1, 1390-1

Revisão . Liberado

Coincide a sequência "Revisão" seguida por qualquer caractere e, em seguida, a sequência "Liberada"

Revisão A Liberada

Revisão 1 Liberada

Revisão # Liberada

Revisão A1 Liberada

RevisãoALiberada

Colchetes

Colchetes ("[ ]") definem uma classe de caractere, que coincide com qualquer caractere único contra os caracteres dentro dos colchetes. Dentro dos colchetes, todos os caracteres especiais perdem o seu significado, exceto "^", que quando utilizado como o primeiro caractere nos colchetes significa NÃO coincidir com os caracteres especificados.

Além disso, podem ser usadas faixas dentro dos colchetes.

Expressão

Significado

Coincide

Não coincide

[akm]

Um caractere: um a, k ou m.

A, K, M

Akm, ak, G

[a-z]

Qualquer letra

A, b, c, d

1, 2, -, #

[^akm]

Um caractere desde que NÃO seja a, k ou m.

C, f, G,

Am (porque tem dois caracteres)

A, k, m

[0-9]

Qualquer número

0, 4, 7

A, #, z

[a-z][a-z]

Qualquer duas letras

AB, BC, DE

A (apenas uma letra)

A1

12

Asterisco

Um asterisco ("*") segue uma expressão e indica que a expressão precedente pode ocorrer zero ou mais vezes.

Expressão

Significado

Coincide

Não coincide

Ab*c

"A" seguido por zero ou mais b's, com um C no final.

Ac

Abc

Abbbbbbbc

Bbb

Abcd

[a-z]*

Qualquer quantidade de qualquer letra (ou seja, somente letras - mas inclui zero letras)

A

Bob

AAAAA

Aço

<Em branco> (porque * pode indicar zero ocorrências)

AÇO230

12

AA-##

Sinal de mais

Um sinal de mais ("+") segue uma expressão e indica que a expressão precedente pode ocorrer uma ou mais vezes.

Expressão

Significado

Coincide

Não coincide

Ab+c

"A" seguido por um ou mais b's, com um C no final.

Abc

Abbbbbbbc

Ac

Bbb

Abcd

[a-z]+

Qualquer número de qualquer letra (ou seja, somente letras)

Bob

AAAAA

Aço

AÇO230

12

AA-##

<em branco>

Ponto de interrogação

Um ponto de interrogação ("?") segue uma expressão para indicar que a expressão precedente era opcional.

Expressão

Significado

Coincide

Não coincide

Ab?c

"A" seguido por um "b" opcional, com um C no final.

Ac

Abc

Abbc

Abcd

390-[a-z][a-z]?

"390-" seguido por uma letra, e uma segunda letra opcional.

390-A

390-AB

390-11

390-

390-ABC

Tubulação

O caractere de barra vertical ("|") opera como um OU entre duas expressões (normalmente fechadas entre parênteses).

Expressão

Significado

Coincide

Não coincide

(390|241)-[a-z]+

Um "390" ou "241" seguido por um "-" e uma ou mais letras.

390-A

241-A

241-AB

200-A

241

241-

Conforme (MS2377|CS123)

"Como por" seguido por "MS2377" ou "CS123"

Conforme MS2377

Conforme CS123

Conforme

Como por MS3222

 

390-([abc]|[123])

"390-" seguido por um "a", "b" ou "c" OU um "1", "2", ou "3".

390-A

390-3

390-F

390-

Barra invertida para englobar caracteres especiais

Se for necessário realmente coincidir com um caractere que seja um "caractere especial", uma barra invertida antes do caractere especial informa ao Model Review que este deve ser interpretado literalmente (e não como um caractere especial).

Expressão

Significado

Coincide

Não coincide

[0-9]\+

Um número seguido por um "+".

1+

2+

1

A

1+1

O quê\?

"O quê" seguido por um ponto de interrogação.

O quê?

O que há?

Barra invertida começa com / termina com

Uma tarefa comum no Model Review é "começar com" ou "terminar com" um determinado valor. Esta sintaxe é estranha para pessoas acostumadas a expressões regulares de estilo de "pesquisa". A abordagem recomendada é usar ".*" ou ".+ " na frente ou atrás da expressão para indicar Começa com ou Termina com.

Expressão

Significado

Coincide

Não coincide

390-.*

Começa com "390-" (termina com qualquer coisa – incluindo em branco).

390-1

390-111

1390-1

390-.+

Começa com "390-" (termina com qualquer coisa, mas precisa ter ao menos um caractere).

390-1

390-111

1390-1

390-

.*-[a-z]

Termina com um "-" e uma letra (começa com qualquer coisa - incluindo em branco).

Revisão-A

Rev-A

-A

Revisão-A1

Rev-1

123

-1

.+-[a-z]

Termina com um "-" e uma letra (começa com qualquer coisa, mas precisa ter ao menos um caractere).

Revisão-A

Rev-A

Revisão-A1

Rev-1

123

-1

-A

Colocando tudo em ação

As expressão regulares são uma poderosa (mas um tanto complexa) abordagem para coincidir texto. Para atender requisitos mais complexos, é preciso se tornar perito em juntar diversas expressões para criar uma expressão complexa.

Alguns exemplos de expressões complexas seriam:

Expressão

Significado

Coincide

Não coincide

[0-9]+[-]?[0-9]+

Números com um traço opcional no meio.

123-45

12345

12A32

1232-A

A

.*[^_]

Não pode terminar com um traço inferior (_).

123324

PARTE1

12343_

(390|231)-[a-z0-9]+-[0-9]+

390 ou 231, seguido por um "-", uma seção alfanumérica de pelo menos um caractere, em seguida, um "-" e pelo menos um número.

390-mypart-1

231-bracket-99

120-mypart-1

380- -