Skip to content

Commit 123d22a

Browse files
Word boundary: \b
Word boundary: \b
2 parents 837287f + bf2c6a7 commit 123d22a

File tree

3 files changed

+28
-29
lines changed

3 files changed

+28
-29
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
2-
The answer: `pattern:\b\d\d:\d\d\b`.
1+
A resposta: `pattern:\b\d\d:\d\d\b`.
32

43
```js run
5-
alert( "Breakfast at 09:00 in the room 123:456.".match( /\b\d\d:\d\d\b/ ) ); // 09:00
4+
alert( "Café da manhã as 09:00 no quarto 123:456.".match( /\b\d\d:\d\d\b/ ) ); // 09:00
65
```
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
# Find the time
1+
# Encontre o horário
22

3-
The time has a format: `hours:minutes`. Both hours and minutes has two digits, like `09:00`.
3+
Um horário possui o formato `hours:minutes`. Ambas as horas e os minutos possuem dois dígitos, como `09:00`.
44

5-
Make a regexp to find time in the string: `subject:Breakfast at 09:00 in the room 123:456.`
5+
Componha uma expressão regular que encontra o horário na string: `subject:Café da manhã as 09:00 no quarto 123:456.`
66

7-
P.S. In this task there's no need to check time correctness yet, so `25:99` can also be a valid result.
7+
P.S. Nessa tarefa não é necessário verificar a corretude do horário ainda, então `25:99` também pode ser um resultado válido.
88

9-
P.P.S. The regexp shouldn't match `123:456`.
9+
P.P.S. A expressão não deve corresponder com `123:456`.

Diff for: 9-regular-expressions/06-regexp-boundary/article.md

+21-21
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,52 @@
1-
# Word boundary: \b
1+
# Borda de palavra: \b
22

3-
A word boundary `pattern:\b` is a test, just like `pattern:^` and `pattern:$`.
3+
Uma borda de palavra `pattern:\b` é um teste, como o `pattern:^` e `pattern:$` também são.
44

5-
When the regexp engine (program module that implements searching for regexps) comes across `pattern:\b`, it checks that the position in the string is a word boundary.
5+
Quando o interpretador de regex (um módulo de programa que implementa a busca por expressões regulares) encontra um `pattern:\b`, ele verifica se naquela posição da string ocorre a borda de uma palavra.
66

7-
There are three different positions that qualify as word boundaries:
7+
Existem três diferentes posições que configuram uma borda de palavra:
88

9-
- At string start, if the first string character is a word character `pattern:\w`.
10-
- Between two characters in the string, where one is a word character `pattern:\w` and the other is not.
11-
- At string end, if the last string character is a word character `pattern:\w`.
9+
- O início de uma string, se o primeiro caractere da string é um caractere de palavra `pattern:\w`.
10+
- Entre dois caracteres de uma string, quando um deles é um caractere de palavra `pattern:\w` e o outro não.
11+
- No fim da string, Se o último caractere for um caractere de palavra `pattern:\w`.
1212

13-
For instance, regexp `pattern:\bJava\b` will be found in `subject:Hello, Java!`, where `subject:Java` is a standalone word, but not in `subject:Hello, JavaScript!`.
13+
Por exemplo, a regex `pattern:\bJava\b` corresponde com `subject:Hello, Java!`, já que `subject:Java` é uma palavra solta, mas não corresponde com `subject:Hello, JavaScript!`.
1414

1515
```js run
1616
alert( "Hello, Java!".match(/\bJava\b/) ); // Java
1717
alert( "Hello, JavaScript!".match(/\bJava\b/) ); // null
1818
```
1919

20-
In the string `subject:Hello, Java!` following positions correspond to `pattern:\b`:
20+
Na string `subject:Hello, Java!` as seguintes posições correspondem ao `pattern:\b`:
2121

2222
![](hello-java-boundaries.svg)
2323

24-
So, it matches the pattern `pattern:\bHello\b`, because:
24+
Ela corresponde com o padrão `pattern:\bHello\b` por que:
2525

26-
1. At the beginning of the string matches the first test `pattern:\b`.
27-
2. Then matches the word `pattern:Hello`.
28-
3. Then the test `pattern:\b` matches again, as we're between `subject:o` and a comma.
26+
1. Corresponde ao começo da string com o primeiro teste `pattern:\b`.
27+
2. Depois corresponde com a palavra `pattern:Hello`.
28+
3. E então corresponde com o teste `pattern:\b` novamente, dado que estamos entre um `subject:o` e uma vírgula.
2929

30-
So the pattern `pattern:\bHello\b` would match, but not `pattern:\bHell\b` (because there's no word boundary after `l`) and not `Java!\b` (because the exclamation sign is not a wordly character `pattern:\w`, so there's no word boundary after it).
30+
Então o padrão `pattern:\bHello\b` corresponderia, mas não o `pattern:\bHell\b` (porque não temos nenhuma borda de palavra após o `l`), e nem o `Java!\b` (porque a exclamação não é um caractere de palavra `pattern:\w`, então não tem uma borda de palavra após ela).
3131

3232
```js run
3333
alert( "Hello, Java!".match(/\bHello\b/) ); // Hello
3434
alert( "Hello, Java!".match(/\bJava\b/) ); // Java
35-
alert( "Hello, Java!".match(/\bHell\b/) ); // null (no match)
36-
alert( "Hello, Java!".match(/\bJava!\b/) ); // null (no match)
35+
alert( "Hello, Java!".match(/\bHell\b/) ); // null (nenhuma correspondência)
36+
alert( "Hello, Java!".match(/\bJava!\b/) ); // null (nenhuma correspondência)
3737
```
3838

39-
We can use `pattern:\b` not only with words, but with digits as well.
39+
Além de usar o `pattern:\b` com palavras, podemos usá-lo com dígitos também.
4040

41-
For example, the pattern `pattern:\b\d\d\b` looks for standalone 2-digit numbers. In other words, it looks for 2-digit numbers that are surrounded by characters different from `pattern:\w`, such as spaces or punctuation (or text start/end).
41+
O padrão `pattern:\b\d\d\b` procura por números soltos de dois dígitos. Em outras palavras, ele procura por números de dois dígitos delimitados por caracteres diferentes da classe `pattern:\w`, como espaços e pontuação (ou início e final da string)
4242

4343
```js run
4444
alert( "1 23 456 78".match(/\b\d\d\b/g) ); // 23,78
4545
alert( "12,34,56".match(/\b\d\d\b/g) ); // 12,34,56
4646
```
4747

48-
```warn header="Word boundary `pattern:\b` doesn't work for non-latin alphabets"
49-
The word boundary test `pattern:\b` checks that there should be `pattern:\w` on the one side from the position and "not `pattern:\w`" - on the other side.
48+
```warn header="A borda de palavra `pattern:\b` não funciona com alfabetos não-latinos"
49+
O teste de borda de palavra `pattern:\b` verifica que existe um caractere `pattern:\w` de um lado da posição e um "não `pattern:\w`" do outro
5050

51-
But `pattern:\w` means a latin letter `a-z` (or a digit or an underscore), so the test doesn't work for other characters, e.g. cyrillic letters or hieroglyphs.
51+
Mas o `pattern:\w` representa uma letra do alfabeto latino `a-z` (ou dígito, ou underscore '_'), então o teste não funciona para outros alfabetos, como o cirílico ou sinogramas, por exemplo.
5252
```

0 commit comments

Comments
 (0)