Skip to content

Commit 8de2fbd

Browse files
committed
update minor changes
1 parent 64c8b50 commit 8de2fbd

File tree

1 file changed

+23
-23
lines changed

1 file changed

+23
-23
lines changed

9-regular-expressions/03-regexp-unicode/article.md

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,17 @@
22

33
O JavaScript usa a [codificação Unicode](https://pt.wikipedia.org/wiki/Unicode) para strings. A maioria dos caracteres são codificados com 2 bytes, mas isso permite representar no máximo 65536 caracteres diferentes.
44

5-
Esse alcance não é grande o bastante para codificar todos os caracteres possíveis, por isso alguns caracteres são codificados com 4 bytes, como o `𝒳` (X matemático) ou o `😄` (emoji sorridente), alguns hieróglifos e assim por diante.
5+
Esse alcance não é grande o bastante para codificar todos os caracteres possíveis, por isso alguns caracteres são codificados com 4 bytes, como o `𝒳` (X matemático) ou o `😄` (emoji sorridente), alguns ideogramas e assim por diante.
66

77
Aqui estão os valores no Unicode de alguns caracteres:
88

9-
| Carácter | Unicode | Contagem de bytes no Unicode |
10-
|------------|---------|--------|
11-
| a | `0x0061` | 2 |
12-
|| `0x2248` | 2 |
13-
|𝒳| `0x1d4b3` | 4 |
14-
|𝒴| `0x1d4b4` | 4 |
15-
|😄| `0x1f604` | 4 |
9+
| Carácter | Unicode | Contagem de bytes no Unicode |
10+
| -------- | --------- | ---------------------------- |
11+
| a | `0x0061` | 2 |
12+
| | `0x2248` | 2 |
13+
| 𝒳 | `0x1d4b3` | 4 |
14+
| 𝒴 | `0x1d4b4` | 4 |
15+
| 😄 | `0x1f604` | 4 |
1616

1717
Note que caracteres como `a` e `` ocupam 2 bytes, enquanto os códigos para `𝒳`, `𝒴` e `😄` são maiores, e ocupam 4 bytes.
1818

@@ -44,56 +44,56 @@ Por exemplo, `\p{Letter}` denota uma letra em qualquer língua. Também podemos
4444
No exemplo abaixo três tipos de letras serão encontrados: Inglês, Georgiano e Coreano.
4545

4646
```js run
47-
let str = "A ბ ㄱ";
47+
let str = 'A ბ ㄱ';
4848

49-
alert( str.match(/\p{L}/gu) ); // A,ბ,ㄱ
50-
alert( str.match(/\p{L}/g) ); // null (nenhuma correspondência, \p não funciona sem a flag "u")
49+
alert(str.match(/\p{L}/gu)); // A,ბ,ㄱ
50+
alert(str.match(/\p{L}/g)); // null (nenhum casamento, \p não funciona sem a flag "u")
5151
```
5252

5353
Estas são as principais categorias de caracteres e suas sub-categorias:
5454

55-
- Letra `L`:
55+
- Letra (Letter) `L`:
5656
- minúscula `Ll`
5757
- modificadora `Lm`,
5858
- titular `Lt`,
5959
- maiúscula `Lu`,
6060
- outra `Lo`.
61-
- Número `N`:
61+
- Número (Number) `N`:
6262
- dígito decimal `Nd`,
6363
- letras numéricas `Nl`,
6464
- outro `No`.
65-
- Pontuação `P`:
65+
- Pontuação (Punctuation) `P`:
6666
- conector `Pc`,
6767
- traço `Pd`,
6868
- aspas esquerdas `Pi`,
6969
- aspas direitas `Pf`,
7070
- abertura `Ps`,
7171
- fechamento `Pe`,
7272
- outro `Po`.
73-
- Marcação `M` (diacríticos, etc.):
73+
- Marcações Diacríticas (Mark) `M`:
7474
- com espaço `Mc`,
7575
- envolvente `Me`,
7676
- sem espaço `Mn`.
77-
- Símbolo `S`:
77+
- Símbolos (Symbol) `S`:
7878
- moeda `Sc`,
7979
- modificador `Sk`,
8080
- matemático `Sm`,
8181
- outro `So`.
82-
- Separador `Z`:
82+
- Separadores (Separator) `Z`:
8383
- linha `Zl`,
8484
- parágrafo `Zp`,
8585
- espaço `Zs`.
86-
- Outro `C`:
86+
- Outros (Other) `C`:
8787
- controle `Cc`,
8888
- formato `Cf`,
8989
- não atribuído `Cn`,
9090
- uso reservado `Co`,
9191
- substituto `Cs`.
9292

93-
9493
Então, se precisarmos de letras minúsculas por exemplo, podemos escrever `pattern:\p{Ll}`, símbolos de pontuação: `pattern:\p{P}` e assim por diante.
9594

9695
Existem outras categorias derivadas, como:
96+
9797
- `Alphabetic` (`Alpha`), inclui a categoria "Letters" `L`, e letras numéricas `Nl` (Exemplo: Ⅻ - Um caractere para o número romano 12), além de alguns outros símbolos `Other_Alphabetic` (`OAlpha`).
9898
- `Hex_Digit` inclui dígitos hexadecimais: `0-9`, `a-f`.
9999
- ...E assim por diante.
@@ -114,14 +114,14 @@ Um dígito hexadecimal pode ser indicado por `pattern:\p{Hex_Digit}`:
114114
```js run
115115
let regexp = /x\p{Hex_Digit}\p{Hex_Digit}/u;
116116

117-
alert("number: xAF".match(regexp)); // xAF
117+
alert('number: xAF'.match(regexp)); // xAF
118118
```
119119

120120
### Exemplo: Sinogramas Chineses
121121

122122
Vamos procurar por sinogramas chineses.
123123

124-
Há uma propriedade Unicode chamada `Script` (sistema de escrita), que pode receber diferentes valores: `Cyrillic` (Cirílico: Russo, Ucraniano, Sérvio), `Greek` (Grego), `Arabic` (Árabe), `Han` (Chinês) e assim por diante, [a lista completa pode ser encontrada aqui](https://en.wikipedia.org/wiki/Script_(Unicode)).
124+
Há uma propriedade Unicode chamada `Script` (sistema de escrita), que pode receber diferentes valores: `Cyrillic` (Cirílico: Russo, Ucraniano, Sérvio), `Greek` (Grego), `Arabic` (Árabe), `Han` (Chinês) e assim por diante, [a lista completa pode ser encontrada aqui](<https://en.wikipedia.org/wiki/Script_(Unicode)>).
125125

126126
Para procurar por caracteres de um sistema de escrita específico nós devemos usar o `pattern:Script=<value>`. Para buscar letras cirílicas, por exemplo: `pattern:\p{sc=Cyrillic}`, para sinogramas chineses: `pattern:\p{sc=Han}`, e assim por diante:
127127

@@ -130,7 +130,7 @@ let regexp = /\p{sc=Han}/gu; // retorna sinogramas chineses
130130

131131
let str = `Hello Привет 你好 123_456`;
132132

133-
alert( str.match(regexp) ); // 你,好
133+
alert(str.match(regexp)); // 你,好
134134
```
135135

136136
### Exemplo: Moeda
@@ -144,7 +144,7 @@ let regexp = /\p{Sc}\d/gu;
144144

145145
let str = `Prices: $2, €1, ¥9`;
146146

147-
alert( str.match(regexp) ); // $2,€1,¥9
147+
alert(str.match(regexp)); // $2,€1,¥9
148148
```
149149

150150
Mais adiante, no artigo <info:regexp-quantifiers> veremos como procurar por números que contém vários dígitos.

0 commit comments

Comments
 (0)