-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRegex.txt
95 lines (41 loc) · 3.05 KB
/
Regex.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
RegEx do exercício proposto --> .+user\":\"+(\w+).,\"group\":\"(\w+).,\"other\":\"(\w+).\}
https://regex101.com/r/wUA5tL/1
.+..:.(\w+)...+:.(\w+)....+.:.(\w+)..
https://regex101.com/r/B8B9Hd/1
Metacaracteres
[] --> indicam uma classe de caracteres que precisam ser identificados.
Ex.1: [abc] indica que os caracteres a serem identificados precisam ser 'a', 'b' ou 'c'.
Também é possível escolher um intervalo utilizando '-'.
Ex.2: [a-c] exerce a mesma função que [abc], mas possui '-' para demonstrar um intervalo.
^ --> indica uma exceção.
Ex.: [^a] indica que qualquer caracter exceto 'a' deve ser identificado.
\ --> remove funções especiais dos metacaracteres para que seja possível identificá-los.
Ex.1: caso seja necessário identificar o metacaracter '[' é necessário utlizar '\', assim resultando em '\['.
Também é possível utilizar '\' para acessar sequências pré-definidas.
Ex.2: ao utilizar a RegEx '\w' é possível identificar qualquer caracter alfanumérico. Se o padrão da RegEx for expresso em bytes, '\w' pode ser identificada como [a-zA-Z0-9_], mas se for uma string, '\w' irá identificar qualquer caracter marcado como letra na base de dados do módulo unicodedata em Python
Algumas RegEx utilizando '\':
- '\d': identifica qualquer dígito numérico, equivale à classe [0-9]
- '\D': identifica qualquer caracter exceto dígitos numéricos, equivale à classe [^0-9]
- '\s': identifica qualquer espaço em branco, equivale à classe [ \t\n\r\f\v], onde:
-' ': espaço
-'\t': TAB
-'\n': quebra de linha
-'\r': retorno
-'\f': avanço de página
-'\v': vertical TAB
- '\S': identifica qualquer caracter não branco, equivale à classe [^ \t\n\r\f\v]
- '\W': identifica qualquer caracter não alfanumérico, equivale à classe [^a-zA-Z0-9_]
Também é possível incluir essas sequências dentro de classes.
Ex.3: ao utilizar a classe [\s,.], é possível identificar qualquer espaço em branco, e também '.' e ','.
* --> utilizado para indicar repetições de caracteres 0 ou mais vezes.
Ex.1: ab*c significa que tanto ac(com b aparecendo 0 vezes), abc(com b aparecendo 1 vez) e abbbbbbbc(com b aparecendo 7 vezes) pode ser considerado válido.
Também é possível utilizá-lo com classes inteiras.
Ex.2: a[bcd]*b, a aparece 1 vez, caracteres da classe [bcd] aparecem 0 ou mais vezes e termina com b, utilizando essa RegEx na string 'abcbd':
PASSO IDENTIFICOU EXPLICAÇÃO
1 a 'a' na RegEx é identificado
2 abcbd a classe [bcd] é identificada o máximo possível
3 FALHOU 'b' tenta ser identificado, mas fracassa, pois a string já está terminada
4 abcb volta uma casa, para que [bcd]* identifique um caracter a menos
5 FALHOU tentou identificar 'b' novamente, mas a posição atual na string é a última, sendo 'd'
6 abc volta mais uma casa, para que [bcd]* identifique apenas 'bc'
6 abcb tenta identificar 'b' novamente, dessa vez o caracter na posição atual é 'b',sucesso