Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit f0551aa

Browse files
files for version 1.0
1 parent f22b9a6 commit f0551aa

14 files changed

+1248
-0
lines changed

‎Exercises.md

Lines changed: 615 additions & 0 deletions
Large diffs are not rendered by default.

‎Version_changes.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<br>
2+
3+
### 1.0
4+
5+
* First version
6+
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
const pets = /cat|dog/
2+
3+
pets.test('I like cats')
4+
5+
pets.test('I like dogs')
6+
7+
pets.test('I like parrots')
8+
9+
'catapults concatenate cat scat'.replace(/^cat|cat\b/g, 'X')
10+
11+
'cat dog bee parrot fox'.replace(/cat|dog|fox/g, 'mammal')
12+
13+
'red reform read arrest'.replace(/reform|rest/g, 'X')
14+
15+
'red reform read arrest'.replace(/re(form|st)/g, 'X')
16+
17+
'par spare part party'.replace(/\bpar\b|\bpart\b/g, 'X')
18+
19+
'par spare part party'.replace(/\b(par|part)\b/g, 'X')
20+
21+
'par spare part party'.replace(/\bpar(|t)\b/g, 'X')
22+
23+
let words = 'lion elephant are rope not'
24+
25+
words.replace(/on|ant/, 'X')
26+
27+
words.replace(/ant|on/, 'X')
28+
29+
let mood = 'best years'
30+
31+
mood.replace(/year|years/, 'X')
32+
33+
mood.replace(/years|year/, 'X')
34+
35+
let sample = 'ear xerox at mare part learn eye'
36+
37+
sample.replace(/ar|are|art/g, 'X')
38+
39+
sample.replace(/are|ar|art/g, 'X')
40+
41+
sample.replace(/are|art|ar/g, 'X')
42+

‎code_snippets/Anchors.js

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
/^cat/.test('cater')
2+
3+
/^cat/.test('concatenation')
4+
5+
/^hi/.test('hi hello\ntop spot')
6+
7+
/^top/.test('hi hello\ntop spot')
8+
9+
/are$/.test('spare')
10+
11+
/are$/.test('nearest')
12+
13+
let words = ['surrender', 'unicorn', 'newer', 'door', 'empty', 'eel', 'pest']
14+
15+
words.filter(w => /er$/.test(w))
16+
17+
words.filter(w => /t$/.test(w))
18+
19+
/^cat$/.test('cat')
20+
21+
/^cat$/.test('cater')
22+
23+
'live'.replace(/^/, 're')
24+
25+
'send'.replace(/^/, 're')
26+
27+
'cat'.replace(/$/, 'er')
28+
29+
'hack'.replace(/$/, 'er')
30+
31+
/^top/m.test('hi hello\ntop spot')
32+
33+
/er$/m.test('spare\npar\nera\ndare')
34+
35+
/^par$/m.test('spare\npar\nera\ndare')
36+
37+
let items = 'catapults\nconcatenate\ncat'
38+
39+
console.log(items.replace(/^/gm, '* '))
40+
41+
console.log(items.replace(/$/gm, '.'))
42+
43+
'1\n2\n'.replace(/^/mg, 'foo ')
44+
45+
'1\n2\n'.replace(/$/mg, ' baz')
46+
47+
let sample = 'par spar apparent spare part'
48+
49+
sample.replace(/par/g, 'X')
50+
51+
sample.replace(/\bpar/g, 'X')
52+
53+
sample.replace(/par\b/g, 'X')
54+
55+
sample.replace(/\bpar\b/g, 'X')
56+
57+
console.log(sample.replace(/\b/g, '"').replace(//g, ','))
58+
59+
'foo_baz=num1+35*42/num2'.replace(/\b/g, ' ')
60+
61+
'foo_baz=num1+35*42/num2'.replace(/\b/g, ' ').trim()
62+
63+
sample.replace(/\Bpar/g, 'X')
64+
65+
sample.replace(/\Bpar\b/g, 'X')
66+
67+
sample.replace(/par\B/g, 'X')
68+
69+
sample.replace(/\Bpar\B/g, 'X')
70+
71+
'copper'.replace(/\b/g, ':')
72+
73+
'copper'.replace(/\B/g, ':')
74+
75+
'-----hello-----'.replace(/\b/g, ' ')
76+
77+
'-----hello-----'.replace(/\B/g, ' ')
78+

‎code_snippets/Character_class.js

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
['cute', 'cat', 'cot', 'coat', 'cost'].filter(w => /c[ou]t/.test(w))
2+
3+
'meeting cute boat site foot'.replace(/[aeo]+t/g, 'X')
4+
5+
'Sample123string42with777numbers'.match(/[0123456789]+/g)
6+
7+
'Sample123string42with777numbers'.match(/[0-9]+/g)
8+
9+
'coat Bin food tar12 best'.match(/\b[a-z0-9]+\b/g)
10+
11+
'coat tin food put stoop best'.match(/\b[p-z][a-z]*\b/g)
12+
13+
'coat tin food put stoop best'.match(/\b[a-fp-t]+\b/g)
14+
15+
'23 154 12 26 98234'.match(/\b[12][0-9]\b/g)
16+
17+
'23 154 12 26 98234'.match(/\b[0-9]{3,}\b/g)
18+
19+
'0501 035 154 12 26 98234'.match(/\b0*[1-9][0-9]{2,}\b/g)
20+
21+
'45 349 651 593 4 204'.match(/[0-9]+/g).filter(n => n < 350)
22+
23+
'45 349 651 593 4 204'.replace(/[0-9]+/g, m => m < 350 ? 0 : 1)
24+
25+
'45 349 651 593 4 204'.match(/[0-9]+/g).filter(n => n >= 200 && n <= 650)
26+
27+
'Sample123string42with777numbers'.match(/[^0-9]+/g)
28+
29+
'foo=42; baz=123'.replace(/^[^=]+/, '')
30+
31+
'foo:123:bar:baz'.replace(/^([^:]+:){2}/, '')
32+
33+
'foo=42; baz=123'.replace(/=[^=]+$/, '')
34+
35+
let words = ['tryst', 'fun', 'glyph', 'pity', 'why']
36+
37+
words.filter(w => /^[^aeiou]+$/.test(w))
38+
39+
words.filter(w => !/[aeiou]/.test(w))
40+
41+
'ab-cd gh-c 12-423'.match(/\b[a-z-]{2,}\b/g)
42+
43+
'ab-cd gh-c 12-423'.match(/\b[a-z\-0-9]{2,}\b/g)
44+
45+
'f*(a^b) - 3*(a+b)'.match(/a[+^]b/g)
46+
47+
'f*(a^b) - 3*(a+b)'.match(/a[\^+]b/g)
48+
49+
'words[5] = tea'.match(/[a-z[\]0-9]+/)[0]
50+
51+
console.log('5ba\\babc2'.match(/[a\\b]+/)[0])
52+
53+
'Sample123string42with777numbers'.split(/\d+/)
54+
55+
'sea eat car rat eel tea'.match(/\b\w/g).join('')
56+
57+
'tea sea-pit sit-lean bean'.match(/[\w\s]+/g)
58+
59+
'Sample123string42with777numbers'.replace(/\D+/g, '-')
60+
61+
' 1..3 \v\f foo_baz 42\tzzz \r\n1-2-3 '.match(/\S+/g)
62+
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
'tac tin cat abc;tuv acute'.replace(/c.t/g, 'X')
2+
3+
'breadth markedly reported overrides'.replace(/r..d/g, 'X')
4+
5+
'42\t33'.replace(/2.3/, '8')
6+
7+
'far feat flare fear'.replace(/e?ar/g, 'X')
8+
9+
'par spare part party'.replace(/\bpart?\b/g, 'X')
10+
11+
['red', 'ready', 're;d', 'redo', 'reed'].filter(w => /\bre.?d\b/.test(w))
12+
13+
'par part parrot parent'.replace(/par(ro)?t/g, 'X')
14+
15+
'par part parrot parent'.replace(/par(en|ro)?t/g, 'X')
16+
17+
'tr tear tare steer sitaara'.replace(/ta*r/g, 'X')
18+
19+
'tr tear tare steer sitaara'.replace(/t(e|a)*r/g, 'X')
20+
21+
'3111111111125111142'.replace(/1*2/g, 'X')
22+
23+
'3111111111125111142'.split(/1*2/)
24+
25+
'3111111111125111142'.split(/1*/)
26+
27+
'tr tear tare steer sitaara'.replace(/ta+r/g, 'X')
28+
29+
'tr tear tare steer sitaara'.replace(/t(e|a)+r/g, 'X')
30+
31+
'3111111111125111142'.replace(/1+2/g, 'X')
32+
33+
'3111111111125111142'.split(/1+/)
34+
35+
let demo = ['abc', 'ac', 'abbc', 'xabbbcz', 'bc', 'abbbbbc']
36+
37+
demo.filter(w => /ab{1,4}c/.test(w))
38+
39+
demo.filter(w => /ab{0,2}c/.test(w))
40+
41+
demo.filter(w => /ab{3,}c/.test(w))
42+
43+
demo.filter(w => /ab{3}c/.test(w))
44+
45+
/Error.*valid/.test('Error: not a valid input')
46+
47+
/Error.*valid/.test('Error: key not found')
48+
49+
/cat.*dog|dog.*cat/.test('cat and dog')
50+
51+
/cat.*dog|dog.*cat/.test('dog and cat')
52+
53+
let patterns = [/cat/, /dog/]
54+
55+
patterns.every(p => p.test('cat and dog'))
56+
57+
patterns.every(p => p.test('dog and cat'))
58+
59+
'foot'.replace(/f.?o/, 'X')
60+
61+
console.log('blah < foo \\< bar < baz'.replace(/\\?</g, '\\<'))
62+
63+
'hand handy handful'.replace(/hand(y|ful)?/g, 'X')
64+
65+
let sentence = 'that is quite a fabricated tale'
66+
67+
sentence.replace(/t.*a/, 'X')
68+
69+
'star'.replace(/t.*a/, 'X')
70+
71+
sentence.replace(/t.*a.*q.*f/, 'X')
72+
73+
sentence.replace(/t.*a.*u/, 'X')
74+
75+
'foot'.replace(/f.??o/, 'X')
76+
77+
'frost'.replace(/f.??o/, 'X')
78+
79+
'123456789'.replace(/.{2,5}?/, 'X')
80+
81+
sentence.replace(/t.*?a/, 'X')
82+
83+
'star'.replace(/t.*?a/, 'X')
84+
85+
sentence.replace(/t.*?a.*?f/, 'X')
86+
87+
'Hi there\nHave a Nice Day'.replace(/the.*ice/, 'X')
88+
89+
'Hi there\nHave a Nice Day'.replace(/the.*ice/s, 'X')
90+
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
/b^2/.test('a^2 + b^2 - C*3')
2+
3+
/b\^2/.test('a^2 + b^2 - C*3')
4+
5+
'(a*b) + c'.replace(/\(|\)/g, '')
6+
7+
'\\learn\\by\\example'.replace(/\\/g, '/')
8+
9+
function escapeRegExp(string) {
10+
return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
11+
}
12+
13+
let eqn = 'f*(a^b) - 3*(a^b)'
14+
15+
const usr_str = '(a^b)'
16+
17+
const pat = new RegExp(escapeRegExp(usr_str), 'g')
18+
19+
pat
20+
21+
eqn.replace(pat, 'c')
22+
23+
eqn.replace(new RegExp(escapeRegExp(usr_str) + '$'), 'c')
24+
25+
function unionRegExp(arr) {
26+
return arr.map(w => escapeRegExp(w)).join('|')
27+
}
28+
29+
let w1 = ['c^t', 'dog$', 'f|x']
30+
31+
const p1 = new RegExp(unionRegExp(w1), 'g')
32+
33+
p1
34+
35+
'c^t dog$ bee parrot f|x'.replace(p1, 'mammal')
36+
37+
let w2 = ['hand', 'handy', 'handful']
38+
39+
w2.sort((a, b) => b.length - a.length)
40+
41+
const p2 = new RegExp(`\\b(${unionRegExp(w2)})\\b`, 'g')
42+
43+
p2
44+
45+
'handful handed handy hands hand'.replace(p2, 'X')
46+
47+
const p3 = /\bpar\b/
48+
49+
const p4 = new RegExp(p3.source + '|cat', 'g')
50+
51+
p4
52+
53+
console.log(p4.source)
54+
55+
p4.flags
56+
57+
'cater cat concatenate par spare'.replace(p4, 'X')
58+
59+
let path = '/foo/123/foo/baz/ip.txt'
60+
61+
path.replace(/^\/foo\/123\//, '~/')
62+
63+
path.replace(new RegExp(`^/foo/123/`), '~/')
64+

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /