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.
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:
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 ("[ ]") 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 |
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-## |
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> |
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 |
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- |
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á? |
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 |
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- - |