Π Π΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π»ΠΈΠ±ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ, Π»ΠΈΠ±ΠΎ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ ΡΠΎ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ. ΠΡΠΎΡΡΠ΅ΠΉΡΠΈΠΌ ΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠΌΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠΈΠ»ΠΈΡΠ° grep(1), ΡΠΈΠ»ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅ΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΡΡΠΎΠΊΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠΌΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. Π€ΠΎΡΠΌΠ° Π·Π°ΠΏΠΈΡΠΈ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΊΡΠ°ΡΠΊΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π² ΡΠ°Π±Π»ΠΈΡΠ΅ 8.1.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠΎΡΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Π·Π°ΠΏΠΈΡΠΈ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
1. ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΡ-ΠΌΠ°ΡΠΊΠΈ. ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²-ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² (wildcard), ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΠΉΡΡ Π² ΡΠ°Π½Π½ΠΈΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°Ρ Unix Π΄Π»Ρ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ ΡΠ°ΠΉΠ»ΠΎΠ². Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²ΡΠ΅Π³ΠΎ 3 ΡΠΈΠΌΠ²ΠΎΠ»Π°-ΡΠ°Π±Π»ΠΎΠ½Π°: * β ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π»ΡΠ±ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (ΠΊΠ°ΠΊ . * Π² Π΄ΡΡΠ³ΠΈΡ Π²Π°ΡΠΈΠ°Π½ΡΠ°Ρ ); ? β ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π»ΡΠ±ΠΎΠΌΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΠΎΠΌΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ (ΠΊΠ°ΠΊ . Π² Π΄ΡΡΠ³ΠΈΡ Π²Π°ΡΠΈΠ°Π½ΡΠ°Ρ ); [. . . ] β ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΊΠ°ΠΊ Π² Π΄ΡΡΠ³ΠΈΡ Π²Π°ΡΠΈΠ°Π½ΡΠ°Ρ . Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°Ρ (csh, bash, zsh) ΠΏΠΎΠ·Π΄Π½Π΅Π΅ Π±ΡΠ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠ°Π±Π»ΠΎΠ½ {} Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ x{a,b}c ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΡΠΎΠΊΠ°ΠΌ Ρ Π°Ρ ΠΈΠ»ΠΈ xbc, Π½ΠΎ Π½Π΅ Ρ Ρ. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ-ΠΌΠ°ΡΠΊΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π΅ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Π² Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
2. ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. Π€ΠΎΡΠΌΠ° Π·Π°ΠΏΠΈΡΠΈ, ΠΏΡΠΈΠ½ΡΡΠ°Ρ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΈΠ»ΠΈΡΠ΅ grep(1) Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° ΡΡΡΠΎΠΊ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠΌΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π² ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ed(1) ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ sed(1). ΠΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»Ρ ΡΡΠ°ΡΠΎΠΉ ΡΠΊΠΎΠ»Ρ Unix ΡΡΠΈΡΠ°ΡΡ Π΄Π°Π½Π½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ, ΠΈΠ»ΠΈ "ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ", ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ, Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΡΠΎΠ»ΠΊΠ½ΡΠ²ΡΠΈΠ΅ΡΡ Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, ΡΠΊΠ»ΠΎΠ½Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΡ ΡΠΎΡΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΠΈΡΠ°Π½Π° Π½ΠΈΠΆΠ΅.
3. Π Π°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΠΏΠΈΡΡ, ΠΏΡΠΈΠ½ΡΡΠ°Ρ Π² ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ grep, egrep(1) Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° ΡΡΡΠΎΠΊ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠΌΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. Π Π΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² Lex ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ Emacs Π²Π΅ΡΡΠΌΠ° Π±Π»ΠΈΠ·ΠΊΠΈ ΠΊ egrep-ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠΈ.
Π’Π°Π±Π»ΠΈΡΠ° 8.1. ΠΡΠΈΠΌΠ΅ΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
Π Π΅Π³ΡΠ»ΡΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ°
"Ρ .Ρ"
x, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π»ΡΠ±ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Ρ
"Ρ \.Ρ"
Ρ , Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΎΡΠΊΠ° Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Ρ
"xz?y"
Ρ , Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° z Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Ρ, Ρ.Π΅. "Ρ Ρ" ΠΈΠ»ΠΈ "xzy", Π½ΠΎ Π½Π΅ "xz" ΠΈΠ»ΠΈ "xdy"
"xz*y"
Ρ , Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² z, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ»Π΅-Π΄ΡΠ΅ΡΡ,Ρ.Π΅. "Ρ Ρ" ΠΈΠ»ΠΈ "xzy" ΠΈΠ»ΠΈ "xzzzy",HOΠ½Π΅ "xz" ΠΈΠ»ΠΈ "xdy"
"xz+y"
X Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΡΠΈΠΌΠ²ΠΎΠ»Π° z, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ Ρ, Ρ.Π΅. "xzy" ΠΈΠ»ΠΈ "xzzy",HOHe "Ρ Ρ", "xz" ΠΈΠ»ΠΈ "xdy"
"stxyz]t"
s, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Ρ , Ρ ΠΈΠ»ΠΈ z, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ t, Ρ.Π΅. "sxt", "syt" ΠΈΠ»ΠΈ "szt",HOHe "st" ΠΈΠ»ΠΈ "sat"
"a[x0-9]b"
Π°, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π»ΠΈΠ±ΠΎ Ρ , Π»ΠΈΠ±ΠΎ ΡΠΈΠΌΠ²ΠΎΠ» Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ 0 - 9, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π¬, ΡΠΎ Π΅ΡΡΡ, "axb", "Π°ΠΠͺ" ΠΈΠ»ΠΈ "Π°4Π¬",Π½ΠΎΠ½Π΅ "ab" ΠΈΠ»ΠΈ "aab"
Β»s[
A
xyz] t"
s, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π»ΡΠ±ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ», ΠΊΡΠΎΠΌΠ΅ Ρ , Ρ ΠΈΠ»ΠΈ z, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ t, Ρ.Π΅. "sdt" ΠΈΠ»ΠΈ "set", Π½ΠΎ Π½Π΅ "sxt", "syt" ΠΈΠ»ΠΈ "szt"
"S [
A
x0-9] t"
s, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π»ΡΠ±ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ», ΠΊΡΠΎΠΌΠ΅ Ρ ΠΈΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ 0 - 9, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ t, Ρ.Π΅. "sit" ΠΈΠ»ΠΈ " smt", Π½ΠΎ Π½Π΅ " sxt", " s 01" ΠΈΠ»ΠΈ "s4t"
Ρ Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΡΠΎΠΊΠΈ, Ρ.Π΅. "xzy" ΠΈΠ»ΠΈ "Ρ Π³Π³Ρ",Π½ΠΎΠ½Π΅ "yzy" ΠΈΠ»ΠΈ "ΡΡ Ρ"
"x$"
Ρ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ, Ρ.Π΅. "yzx" ΠΈΠ»ΠΈ "ΡΡ ", Π½ΠΎ Π½Π΅ "yxz" ΠΈΠ»ΠΈ " zxy"
4. Π Π΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ° Perl. Π€ΠΎΡΠΌΠ° Π·Π°ΠΏΠΈΡΠΈ, ΠΏΡΠΈΠ½ΡΡΠ°Ρ Π² regexp-ΡΡΠ½ΠΊΡΠΈΡΡ ΡΠ·ΡΠΊΠΎΠ² Perl ΠΈ Python. ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΠ²Π»ΡΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡΠ½ΡΠΌΠΈ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ egrep-Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ.
ΠΠΎΡΠ»Π΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π² ΡΠ°Π±Π»ΠΈΡΠ΅ 8.2 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΡΠ²ΠΎΠ΄ΠΊΠ° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² Π΄Π»Ρ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π² ΡΠ°Π±Π»ΠΈΡΡ Π½Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ Π²Π°ΡΠΈΠ°Π½Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ-ΠΌΠ°ΡΠΎΠΊ, ΠΏΠΎΡΡΠΎΠΌΡ Π·Π°ΠΏΠΈΡΡ "Π΄Π»Ρ Π²ΡΠ΅Ρ " ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΡΠΈΠΏΠ°: Π±Π°Π·ΠΎΠ²ΡΠΉ, ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ/Emacs ΠΈ Perl/Python.
Π‘ΡΠ°Π½Π΄Π°ΡΡ POSIX Π΄Π»Ρ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π²Π²ΠΎΠ΄ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ [[ilower;; ] ] ΠΈ [ [ :digit: ] ]. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ-ΡΠ°Π±Π»ΠΎΠ½Ρ, Π½Π΅ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π·Π΄Π΅ΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ.
Π’Π°Π±Π»ΠΈΡΠ° 8.2. ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠΌΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ
Π‘ΠΈΠΌΠ²ΠΎΠ»-ΡΠ°Π±Π»ΠΎΠ½
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ
Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ°
\
Π²ΠΎ Π²ΡΠ΅Ρ
ΠΠ°ΡΠ°Π»ΠΎ Π΅Π²ΡΠ°ΡΠ΅-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΡΠ»Π΅Π΄ΡΠ΅Ρ Π»ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π½Π°ΠΊ ΠΊΠ°ΠΊ ΡΠ°Π±Π»ΠΎΠ½. ΠΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π±ΡΠΊΠ²Ρ ΠΈΠ»ΠΈ ΡΠΈΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
Π²ΠΎ Π²ΡΠ΅Ρ
ΠΡΠ±ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ»
Π²ΠΎ Π²ΡΠ΅Ρ
ΠΠ°ΡΠ°Π»ΠΎ ΡΡΡΠΎΠΊΠΈ
$
Π²ΠΎ Π²ΡΠ΅Ρ
ΠΠΎΠ½Π΅Ρ ΡΡΡΠΎΠΊΠΈ
[...]
Π²ΠΎ Π²ΡΠ΅Ρ
ΠΡΠ±ΠΎΠΉ ΠΈΠ· ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π² ΡΠΊΠΎΠ±ΠΊΠ°Ρ
Π.. β ]
Π²ΠΎ Π²ΡΠ΅Ρ
ΠΡΠ±ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ,
ΠΊΡΠΎΠΌΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ
Π² ΡΠΊΠΎΠ±ΠΊΠ°Ρ
*
Π²ΠΎ Π²ΡΠ΅Ρ
ΠΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°
?
egrep/Emacs, Perl/Python
ΠΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°
+
egrep/Emacs, Perl/Python
ΠΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°
{ΠΏ}
egrep,
Π ΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΏ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠΉ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. ΠΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΡΠ°ΡΡΠΌΠΈ regexp-ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ
Perl/Python; ΠΊΠ°ΠΊ \ {n\} Π² Emacs
{ΠΏ,}
egrep,
ΠΏ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠΉ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. ΠΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΡΠ°ΡΡΠΌΠΈ regexp-ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ
Perl/Python; ΠΊΠ°ΠΊ \ {n, \} Π² Emacs
{Ρ,ΠΏ}
egrep,
ΠΠΈΠ½ΠΈΠΌΡΠΌ Ρ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ ΠΏ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠΉ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. ΠΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΡΠ°ΡΡΠΌΠΈ regexp-ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ
Perl/Python; ΠΊΠ°ΠΊ \{m,n\} Π² Emacs
1
egrep,
ΠΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ»Π΅Π²Π° ΠΈΠ»ΠΈ ΡΠΏΡΠ°Π²Π°. ΠΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΡΠΌΠΎΠΉ Π³ΡΡΠΏΠΏΠΈΡΡΡΡΠΈΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΉ
Perl/Python; ΠΊΠ°ΠΊ \ | Π² Emacs