Anda di halaman 1dari 17

INTRODUO A EXPRESSES REGULARES

Intro-exp-regulares.doc

Expresso Regular (ER)


Uma Expresso Regular (ER) um mtodo formal de se especificar um padro de texto.
uma composio de smbolos, caracteres com funes especiais, chamados "metacaracteres" que,
agrupados entre si e com caracteres literais, formam uma seqncia, uma expresso. Essa expresso
testada em textos e retorna sucesso caso esse texto obedea exatamente a todas as suas condies.
Dizse que o texto "casou" (match) com a expresso.
A ERs servem para se dizer algo abrangente de forma especfica. Definido o padro de busca, temse
uma lista (finita ou no) de possibilidades de casamento.
Em um exemplo rpido, [rgp]ato pode casar "rato", "gato" e "pato".
As ERs so teis para buscar ou validar textos variveis como:
data
horrio
nmero IP
endereo de email
endereo de Internet
declarao de uma funo()
dados na coluna N de um texto
dados que esto entre <tags></tags>
nmero de telefone, RG, CPF, carto de crdito
Vrios editores de texto e linguagens de programao tm suporte a ERs, ento o tempo investido em
seu aprendizado recompensado pela larga variedade de aplicativos onde ele pode ser praticado.
Definio de Expresso Regular
Uma expresso regular (ER) sobre um alfabeto indutivamente definida como se segue:
a) uma ER que denota a linguagem vazia.
b) uma ER que denota a linguagem contendo exclusivamente a palavra vazia, ou seja {}.
c) Qualquer smbolo x pertencente ao alfabeto uma ER e denota a linguagem contendo a
palavra unitria x, ou seja {x}.
d) Se r e s so ERs e denotam respectivamente as linguagens R e S, respectivamente, ento:
1. (r+s) ER e denota a linguagem R U S
2. (rs) ER e denota a linguagem {uv | u R e v S}
3. (r*) ER e denota a linguagem R
Exemplos:
Expresso Regular

Linguagem Representada

aa
ba*
(a+b)*
(a+b)*aa(a+b)*
a*ba*ba*

Somente a palavra aa.


Todas as palavras que iniciam por b, seguido de zero ou mais a.
Todas as palavras sobre o alfabeto {a, b}
Todas as palavras contendo aa como subpalavra.
Todas as palavras contendo exatamente dois b
Pgina 1 de 17

INTRODUO A EXPRESSES REGULARES

(a+b)*(aa+bb)
(a+
)(b+ba)*

1)

Intro-exp-regulares.doc

Todas as palavras que terminam com aa ou bb.


Todas as palavras que no possuem dois a consecutivos

Conhecendo cada um dos metacaracteres

Cada metacaractere uma ferramenta que tem uma funo especfica. Eles servem para dar mais poder
s pesquisas, informando padres e posies impossveis de se especificar usando somente caracteres
normais.
Os metacaracteres so pequenos pedacinhos simples que agrupados entre si, ou com caracteres
normais, formam algo maior, uma expresso. O importante compreender bem cada um
individualmente, e depois apenas llos em seqncia.
1.1) O circunflexo ^
O circunflexo "^" (ou chapuzinho) um metacaractere de posicionamento. Simboliza o incio de uma
linha.

1.2) O cifro $
O cifro "$" um metacaractere de posicionamento, que representa o fim de uma linha.
1.3) A lista [ ]: Um dos elementos do conjunto
Pares delimitadores, devem ocorrer de forma balanceada.
Expresso Regular: [rgp]ato // Qualquer palavra com a primeira letra sendo ou 'r' ou 'g' ou 'p', e
as letras seguintes sendo "ato"
String comparada: rato
String vlida: sim
String comparada: gato
String vlida: sim
String comparada: pato
String vlida: sim
String comparada: xato
String vlida: no
1.4) O ponto . Qualquer caractere
s vezes, necessrio permitir "qualquer" caractere numa certa posio. Por exemplo, para procurar
usurios onde a segunda letra do login seja uma vogal, como "mario", e "jose", mas no "ana". No
importa qual a primeira letra, pode ser qualquer uma, mas a segunda deve ser uma vogal.
O ponto o metacaractere que significa "qualquer letra". E mais, na verdade ele significa "qualquer
caractere", pois alm de letras ele pode representar um nmero, um smbolo, um TAB, enfim: qualquer
caractere.
Expresso Regular: JavaFre.
String comparada: JavaFree
String vlida: sim
Pgina 2 de 17

INTRODUO A EXPRESSES REGULARES

Intro-exp-regulares.doc

1.5) As chaves { }
Pares delimitadores, devem ocorrer de forma balanceada. Colocando um nmero entre chaves "{ }",
indicase uma quantidade de repeties do caractere (ou metacaractere) anterior:
.{27} igual a 27 pontos!
Essa expresso faz o mesmo que a anterior: procura por linhas que tenham 27 caracteres,
quaisquer que sejam eles. A vantagem que basta olhar o nmero de repeties, no precisa
ficar contando os pontinhos.

1.6) O curinga .* (Asterisco)


Qualquer cadeia de caractere. um elemento quantificador. Quando se procura por dois trechos
especficos numa mesma linha, no importando o que h entre eles, usase o curinga ".* " para significar
"qualquer coisa".
Expresso Regular: J*Free // Qualquer coisa que comece com J e termine com Free
String comparada: JavaFree
String vlida: sim
String comparada: JavaPago
String vlida: no

1.7) O ou | (OR)
Para fazer o OR lgico, onde se procura por uma coisa ou outra, devese usar o pipe " | " e delimitar as
opes com os parnteses "( )":
$ egrep '^(ana|carlos|acs):' /etc/passwd
Essa ER casa apenas as linhas dos trs usurios citados. Ela comea procurando no incio da
linha "^", depois procura ou a palavra "ana", ou a palavra "carlos", ou a palavra "acs", seguido
pelo doispontos.
1.8) Os outros repetidores: ? * +
Outros metacaracteres que podem ser usados so o asterisco, o mais e a interrogao (chamado
opcional). Eles definem quantidades e funcionam como as chaves, porm com uma sintaxe mais prtica:
Meta
?
*
+

Nome
opcional
asterisco
mais

Equivalente
{0,1}
{0,}
{1,}

1.8.a)? (Sinal de interrogao):


quantificador.

Descrio
Pode aparecer ou no (opcional)
Pode aparecer em qualquer quantidade
Deve aparecer no mnimo uma vez

Uma ou nenhuma vez, assim como '*', '?' um elemento

Expresso regular: a? // Uma ou nenhuma ocorrncia de 'a'


String comparada:
Pgina 3 de 17

INTRODUO A EXPRESSES REGULARES

Intro-exp-regulares.doc

String vlida: sim


String comparada: a
String vlida: sim

1.8.b) + (Sinal de adio) : Uma ou mais vezes, assim como '*' e '?', um elemento
[i]quantificador[i].
Expresso regular: a+ // Uma ou mais ocorrncias de 'a'
String comparada:
String vlida: no
String comparada: aaa
String vlida: sim

1.9)

Mais detalhes para ver nas listas!


1.9.a) A lista negada [ ^ ]
Expresso Regular: [^rgp]ato // Qualquer palavra cuja primeira letra NO 'r' nem 'g' nem 'p',
sendo "ato" o resto da palavra
String comparada: rato
String vlida: no
String comparada: xato
String vlida: sim

1.9.b) O intervalo em listas [ ]


Outra facilidade da lista a possibilidade de se indicar intervalos, faixas. Basta colocar um hfen
entre duas letras que ele ser expandido para todas as letras existentes no intervalo.
Por exemplo "af" interpretado como "todas as letras entre a e f, inclusive", ou seja "abcdef".
Expresso Regular: [H-L]avaFree // A primeira letra da palavra deve est entre H e L (inclusive H
e L)
String comparada: JavaFree
String vlida: sim
String comparada: RavaFree
String vlida: no
1.10) \ (Barra invertida) : Classe de caracteres pr-definidos. So eles:
1.
2.
3.
4.

\d : Um dgito,
\D : Algo que no seja um dgito,
\s : Um espao em branco,
\S : Algo que no seja um espao em branco,
Pgina 4 de 17

INTRODUO A EXPRESSES REGULARES

Intro-exp-regulares.doc

5. \w : Qualquer letra, dgito ou underscore ( _ )


6. \W : Algo que no seja letra, dgito ou underscore
Exerccios:
Desenvolva expresses regulares que gerem as seguintes linguagens sobre = {a, b}:
a) {w | w tem no mximo um par de a como subpalavra e no mximo um par de b como
subpalavra.
b) {w | qualquer par de a antecede qualquer par de b}
c) {w | w no possui aba como subpalavra}
Alguns exemplos
TIPO

EXPRESSAO REGULAR

EXEMPLO

Data
(dd/mm/aaaa)
Numero Decimal
Arquivos
Documentos
E-mail

^([0-9]|[0,1,2][0-9]|3[0,1])/([\d]|1[0,1,2])/\d{4}$

21/12/2007

^\d*[0-9](\.\d*[0-9])?$
^[a-zA-Z0-9-_\.]+\.(pdf|txt|doc|csv)$

234.342
world-domination.pdf

^([0-9a-zA-Z]+([_.-]?[0-9a-zA-Z]+)*@[0-9a-zA-Z]+[09,a-z,A-Z,.,-]*(.){1}[a-zA-Z]{2,4})+$
^#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$
^[a-zA-Z0-9-_\.]+\.(jpg|gif|png)$

info@lymas.com.br

Codigo Cor HTML


Arquivo de
Imagem
Endereco IP
Arquivos
Multimedia
Data Formato
Mysql
Telefone (US)

^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){3}(25[05]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})$
^[a-zA-Z0-9-_\.]+\.(swf|mov|wma|mpg|mp3|wav)$

#00ccff
new-pic_company.jpg
192.168.0.1

^\d{4}-(0[0-9]|1[0,1,2])-([0,1,2][0-9]|3[0,1])$

companypresentation.swf
2005-09-02

^[2-9]\d{2}-\d{3}-\d{4}$

250-555-4542

Codigo Postal
(EUA)
Hora (HH:MM)

^([A-Z][0-9]){3}$

V2B2S3

^([0-1][0-9]|[2][0-3])(:([0-5][0-9])){1,2}$

12:29

URL

^(http[s]?://|ftp://)?(www\.)?[a-zA-Z0-9\.]+\.(com|org|net|mil|edu|ca|co.uk|com.au|gov|br)$

http://www.google.com

Telefone
Internacional

^(([0-9]{1})*[- .(]*([0-9a-zA-Z]{3})*[- .)]*[0-9a-zA-Z]{3}[- 1.245.532.3422


.]*[0-9a-zA-Z]{4})+$

Pgina 5 de 17

INTRODUO A EXPRESSES REGULARES

Intro-exp-regulares.doc

Exemplo ER-01
(19|20)\d\d([- /.])(0[1-9]|1[012])\2([012][0-9]|3[01])
1. ( 19 | 20 ) um grupo que casa "OU dezenove OU vinte";
2. \d representa um dgito "0 a 9";
3. ( [- /.] ) um grupo que casa "hfen", "espao", "barra" ou "ponto";
4. ( 0 [1-9] | 1 [ 012 ] ) um grupo quer dizer que ele casar "zero" seguido de "um at nove" OU "um"
seguido de "zero", "um" ou "dois";
5. \2 significa que ele re-utiliza o segundo grupo da ER ( [- /.] );
6. ( [ 012 ] [ 0-9 ] | 3 [ 01 ] ) um grupo que casa "zero", "um" ou "dois" seguido de um dos dgitos OU
"trs" seguido de "zero" ou "um";

Ou seja, temos uma ER que casaria as datas dentro deste texto:


1954-10-01 Joo Alberto
1976-07-25 Maria Eduarda
1966-10-22 Carlos Silva

Exemplo ER-02
\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z

Temos nela:
1.

\A que indica o comeo da cadeia de caracteres;

2.

( [ ^@\s ] + ) um gupo que casa qualquer caractere menos "arroba" e "espao", ocorrendo 1 ou
+ vezes;

3.

@ casa "arroba";

4.

?: quer dizer que esse grupo no pode ser re-utilizado;

5.

[ - a-z 0-9 ]+ \. diz que podem conter "trao", alfabeto em caixa baixa e dgito uma ou mais vezes
seguido de "ponto";

6.

+ (guloso) diz que esta sequncia deve acontecer uma ou mais vezes;

7.

[ a-z ] {2, } diz que deve conter 2 ou mais letras do alfabeto em caixa baixa;

8.

\Z indica o fim da cadeia de caracteres;

Pgina 6 de 17

INTRODUO A EXPRESSES REGULARES

Intro-exp-regulares.doc

Essa ER seria uma das possveis para localizar um endereo de email dentro de um texto. Por exemplo:
Perfil
Nome: Americo Vespucio
Endereo: Rua A, Quadra B, Lote 3, Casa 4
E-mail: americovespucio@mail.com
Website: www.testecompanhia.com.br

Tabela ASCII Completa (http://www.spectrum.eti.br/news/tabela_ascii_completa)


A Tabela ASCII (American Standard Code for Information Interchange) no nenhuma novidade para
quem j trabalha com informtica, principalmente com desenvolvimento de software. A minha inteno
em publicar esta tabela adicionar vrias informaes em uma nica tabela, j que a maioria disponvel
na internet apresenta poucos dados.
Esta tabela a juno da tabela ASCII Normal (32 a 127), tabela dos Caracteres de Controle (0 a 31) e a
tabela ASCII Estendida (128 a 255).
Decimal

Binrio

Hex

Referncia

00000000

00

Null - NUL

00000001

01

00000010

02

Start of Text - STX

00000011

03

End of Text - ETX

00000100

04

End of Transmission - EOT

00000101

05

Enquiry - ENQ

00000110

06

Acknowledge - ACK

00000111

07

Bell, rings terminal bell - BEL

00001000

08

BackSpace - BS

00001001

09

Horizontal Tab - HT

10

00001010

0A

Line Feed - LF

11

00001011

0B

Vertical Tab - VT

Start of Heading - SOH

Pgina 7 de 17

INTRODUO A EXPRESSES REGULARES

Intro-exp-regulares.doc

12

00001100

0C

Form Feed - FF

13

00001101

0D

Enter - CR

14

00001110

0E

Shift-Out - SO

15

00001111

0F

Shift-In - SI

16

00010000

10

Data Link Escape - DLE

17

00010001

11

Device Control 1 - D1

18

00010010

12

Device Control 2 - D2

19

00010011

13

Device Control 3 - D3

20

00010100

14

Device Control 4 - D4

21

00010101

15

Negative Acknowledge - NAK

22

00010110

16

23

00010111

17

24

00011000

18

Cancel line - CAN

25

00011001

19

End of Medium - EM

26

00011010

1A

Substitute - SUB

27

00011011

1B

Escape - ESC

28

00011100

1C

File Separator - FS

29

00011101

1D

Group Separator - GS

30

00011110

1E

Record Separator - RS

31

00011111

1F

Unit Separator - US

32

00100000

20

Space - SPC

33

00100001

21

34

00100010

22

"

35

00100011

23

36

00100100

24

37

00100101

25

38

00100110

26

&

39

00100111

27

'

40

00101000

28

41

00101001

29

42

00101010

2A

Synchronous idle - SYN


End Transmission Block - ETB

Pgina 8 de 17

INTRODUO A EXPRESSES REGULARES

Intro-exp-regulares.doc

43

00101011

2B

44

00101100

2C

45

00101101

2D

46

00101110

2E

47

00101111

2F

48

00110000

30

49

00110001

31

50

00110010

32

51

00110011

33

52

00110100

34

53

00110101

35

54

00110110

36

55

00110111

37

56

00111000

38

57

00111001

39

58

00111010

3A

59

00111011

3B

60

00111100

3C

<

61

00111101

3D

62

00111110

3E

>

63

00111111

3F

64

01000000

40

65

01000001

41

66

01000010

42

67

01000011

43

68

01000100

44

69

01000101

45

70

01000110

46

71

01000111

47

72

01001000

48

73

01001001

49

I
Pgina 9 de 17

INTRODUO A EXPRESSES REGULARES

Intro-exp-regulares.doc

74

01001010

4A

75

01001011

4B

76

01001100

4C

77

01001101

4D

78

01001110

4E

79

01001111

4F

80

01010000

50

81

01010001

51

82

01010010

52

83

01010011

53

84

01010100

54

85

01010101

55

86

01010110

56

87

01010111

57

88

01011000

58

89

01011001

59

90

01011010

5A

91

01011011

5B

92

01011100

5C

93

01011101

5D

94

01011110

5E

95

01011111

5F

96

01100000

60

97

01100001

61

98

01100010

62

99

01100011

63

100

01100100

64

101

01100101

65

102

01100110

66

103

01100111

67

104

01101000

68

h
Pgina 10 de 17

INTRODUO A EXPRESSES REGULARES

Intro-exp-regulares.doc

105

01101001

69

106

01101010

6A

107

01101011

6B

108

01101100

6C

109

01101101

6D

110

01101110

6E

111

01101111

6F

112

01110000

70

113

01110001

71

114

01110010

72

115

01110011

73

116

01110100

74

117

01110101

75

118

01110110

76

119

01110111

77

120

01111000

78

121

01111001

79

122

01111010

7A

123

01111011

7B

124

01111100

7C

125

01111101

7D

126

01111110

7E

127

01111111

7F

Delete

128

10000000

80

129

10000001

81

130

10000010

82

131

10000011

83

132

10000100

84

133

10000101

85

134

10000110

86

135

10000111

87

Pgina 11 de 17

INTRODUO A EXPRESSES REGULARES

Intro-exp-regulares.doc

136

10001000

88

137

10001001

89

138

10001010

8A

139

10001011

8B

140

10001100

8C

141

10001101

8D

142

10001110

8E

143

10001111

8F

144

10010000

90

145

10010001

91

146

10010010

92

147

10010011

93

148

10010100

94

149

10010101

95

150

10010110

96

151

10010111

97

152

10011000

98

153

10011001

99

154

10011010

9A

155

10011011

9B

156

10011100

9C

157

10011101

9D

158

10011110

9E

159

10011111

9F

160

10100000

A0

161

10100001

A1

162

10100010

A2

163

10100011

A3

164

10100100

A4

165

10100101

A5

166

10100110

A6

Pgina 12 de 17

INTRODUO A EXPRESSES REGULARES

Intro-exp-regulares.doc

167

10100111

A7

168

10101000

A8

169

10101001

A9

170

10101010

AA

171

10101011

AB

172

10101100

AC

173

10101101

AD

174

10101110

AE

175

10101111

AF

176

10110000

B0

177

10110001

B1

178

10110010

B2

179

10110011

B3

180

10110100

B4

181

10110101

B5

182

10110110

B6

183

10110111

B7

184

10111000

B8

185

10111001

B9

186

10111010

BA

187

10111011

BB

188

10111100

BC

189

10111101

BD

190

10111110

BE

191

10111111

BF

192

11000000

C0

193

11000001

C1

194

11000010

C2

195

11000011

C3

196

11000100

C4

197

11000101

C5

Pgina 13 de 17

INTRODUO A EXPRESSES REGULARES

Intro-exp-regulares.doc

198

11000110

C6

199

11000111

C7

200

11001000

C8

201

11001001

C9

202

11001010

CA

203

11001011

CB

204

11001100

CC

205

11001101

CD

206

11001110

CE

207

11001111

CF

208

11010000

D0

209

11010001

D1

210

11010010

D2

211

11010011

D3

212

11010100

D4

213

11010101

D5

214

11010110

D6

215

11010111

D7

216

11011000

D8

217

11011001

D9

218

11011010

DA

219

11011011

DB

220

11011100

DC

221

11011101

DD

222

11011110

DE

223

11011111

DF

224

11100000

E0

225

11100001

E1

226

11100010

E2

227

11100011

E3

228

11100100

E4

Pgina 14 de 17

INTRODUO A EXPRESSES REGULARES

Intro-exp-regulares.doc

229

11100101

E5

230

11100110

E6

231

11100111

E7

232

11101000

E8

233

11101001

E9

234

11101010

EA

235

11101011

EB

236

11101100

EC

237

11101101

ED

238

11101110

EE

239

11101111

EF

240

11110000

F0

241

11110001

F1

242

11110010

F2

243

11110011

F3

244

11110100

F4

245

11110101

F5

246

11110110

F6

247

11110111

F7

248

11111000

F8

249

11111001

F9

250

11111010

FA

251

11111011

FB

252

11111100

FC

253

11111101

FD

254

11111110

FE

255

11111111

FF

Na dvida, basta consultar essa tabela para ver quais so os caracteres de determinado intervalo. Por
exemplo, o intervalo "[ : @ ]" engloba os caracteres : ; < = > ? @.
Na tabela, tambm podemos ver que o intervalo "a z" no inclui os caracteres acentuados! Para
procurar por letras minsculas num texto em portugus, devese fazer "[a z]".
Pgina 15 de 17

INTRODUO A EXPRESSES REGULARES

Intro-exp-regulares.doc

Tabela dos metacaracteres (http://wiki.cercomp.ufg.br/Equipe_Web/RoR/Express%C3%A3o_Regular)


O que

O que faz
Curinga (todos
. (ponto)
caracteres)
Lista (s os chars dentro
[ ] (abre-fecha colchetes)
dele)
- (trao)
Escopo (De - at)
Negao (no-algumacoisa)
^ (circumflexo)
Incio da linha (comea
com ...)
Opcional (0 ou 1 alguma? (interrogao)
coisa)
Qualquer (0, 1 ou infinitas
* (asterisco)
vezes)
Existente (1 ou mais
+ (mais)
vezes)
{ } (abre-fecha chaves)
Escopo de repeties
Final da linha (termina
$ (cifro)
com ...)
\b (barra invertida + B)

Borda da palavra

Escape (para chars


especiais)
| (pipeline)
Ou
( ) (abre-fecha
Grupo (conjunto de
parntesis)
caracteres)
\[1-9] (barra invertida + 1 Retrovisor (reusa um
at 9)
grupo)
\

(barra invertida)

Exemplo (Busca)
.ato

Resultado
aato, Bato, -ato, ?ato, _ato,
...

[fgpr]ato

fato, gato, pato, rato

[A-Z]

A, B, C, D, E, F, G, H, ...

[^fg]ato
^[CFT]aa

(sem "f" nem "g") pato, rato


"Caa ...", "Faa ...", "Taa
..."

pr?ato

pato, prato

go*l

gl, gol, gool, gooooooooool

cor+ta

corta, corrta, corrrrrrrrrrta

ol{2,5}

oll, olll, ollll, olllll

hoje$

"... fui hoje", "... s hoje"

palavra exata "clara" (not


claras)
\. , \[ , \] , \^ , \? , \* , \+ os metacaracteres
, ...
especiais
foca | toca
foca ou toca
\bclara\b

((su|hi)per)?co

co, superco, hiperco

(tico)-\1 | (teco)-\2\1

tico-tico ou teco-tecotico

Tabela de classes de caracteres


(http://wiki.cercomp.ufg.br/Equipe_Web/RoR/Express%C3%A3o_Regular)

Pgina 16 de 17

INTRODUO A EXPRESSES REGULARES

Qual?
[:alnum:]
[:alpha:]
[:blank:]
[:cntrl:]
[:digit:] ou \d
[:graph:]
[:lower:]
[:print:]
[:punct:]

O que casa?
Caracteres alfanumricos
Caracteres alfabticos
Espao e tabulao
Caracteres de controle
Dgitos
Caracteres visveis
Caracteres em caixa baixa
Caracteres visveis e espaos
Caracteres de pontuao

Intro-exp-regulares.doc

Generalizando
[0-9a-zA-Z]
[A-Za-z]
[ \t]
[\x00-\x1F\x7F]
[0-9]
[\x21-\x7E]
[a-z]
[\x20-\x7E]
[^\w\s]

[:space:] ou \s Caracteres de espaos em branco [ \t \r \n \v \f]


[:upper:]
[:xdigit:]
\S
\w
\W

Caracteres em caixa alta


Dgitos hexadecimais
Tudo menos espaos em branco
Letras, dgitos e ' '
Contrrio de \w

[A-Z]
[A-Fa-f0-9]
[^[:space:]]
[a-zA-Z0-9 ]
[^\w]

Exemplos
Conheci; 800mil; opAAaa
RorRocks
""
No me pergunte ...
4; 8; 15; 16 ;23 ;42 ...
Tb no tenho nem idia
abcdef ...
comeando a fazer sentido
:); =(;
"espao"; "return";
"quebra";
ABCDEF...
FaCaAf14dA; 0033CC;
aZ1.,']);!@$/
aB10 as;
@./;*&

Para saber mais


H programas para auxiliar o aprendizado de Expresses Regulares. O txt2regex
(http://txt2regex.sourceforge.net) um programa modo texto que constri ERs apenas mostrando menus
(em portugus) ao usurio, que escolhe o que quer.
J para a interface grfica, tem o Regex Coach (http://www.weitz.de/regexcoach/), com verses para
Linux e Windows.
Para aprofundarse no assunto, leia o livro "Expresses Regulares", disponvel online em
http://aurelio.net/er. A lista de discusso sedbr um lugar onde dvidas podem ser tiradas:
http://br.groups.yahoo.com/group/sedbr.
http://aurelio.net/er/apostila-conhecendo-regex.pdf

http://www.memelo.org/tmp/docs/perl/guia-er.sourceforge.net/guia-er-8.html

Pgina 17 de 17

Anda mungkin juga menyukai