Π”ΠΈΠΏΠ»ΠΎΠΌ, курсовая, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π°
ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° создания Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΏΠΎ рСгулярным выраТСниям ΠΈ построСниС Π΄Π΅Ρ€Π΅Π²Π° Π²Ρ‹Π²ΠΎΠ΄Π°

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ символы ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ элСмСнтов тСкста: Π½Π°Ρ‡Π°Π»Π° ΠΈ ΠΊΠΎΠ½Ρ†Π° строки, Π³Ρ€Π°Π½ΠΈΡ† слова. рСгулярный Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ грамматичСский ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€. Если трСбуСтся ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π²Ρ…одят Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ символ ^ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобок, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ любой символ, ΠΊΡ€ΠΎΠΌΠ΅ Ρ†ΠΈΡ„Ρ€. Π‘Ρ†Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅, конкатСнация) RS ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ мноТСство {Π±Π²… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° создания Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΏΠΎ рСгулярным выраТСниям ΠΈ построСниС Π΄Π΅Ρ€Π΅Π²Π° Π²Ρ‹Π²ΠΎΠ΄Π° (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Бостав ΠΈ ΡΠΈΠ½Ρ‚аксис рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

РСгулярныС выраТСния состоят ΠΈΠ· ΠΊΠΎΠ½ΡΡ‚Π°Π½Ρ‚ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ мноТСства строк ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π° Π½ΠΈΡ… соотвСтствСнно. На Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π΅ Π£ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ константы:

  • (пустоС мноТСство) ?.
  • (пустая строка) Π΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ строку, Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа. Π­ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΠΎ ««.
  • (ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π») «a», Π³Π΄Π΅ a — символ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° Π£.

ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

  • (сцСплСниС, конкатСнация) RS ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ мноТСство {Π±Π² | Π±? R & Π²? S}. НапримСр, {" boy", «girl» }{" friend", «cott» } = {" boyfriend", «girlfriend», «boycott», «girlcott» }.
  • (Π΄ΠΈΠ·ΡŠΡŽΠ½ΠΊΡ†ΠΈΡ, Ρ‡Π΅Ρ€Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅) R|S ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ объСдинСниС R ΠΈ S. НапримСр, {" ab", «c» }|{" ab", «d», «ef» } = {" ab", «c», «d», «ef» }.
  • (Π·Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΠ΅ Клини, Π·Π²Π΅Π·Π΄Π° Клини) R* ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ минимальноС надмноТСство мноТСства R, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ содСрТит Π΅ ΠΈ Π·Π°ΠΌΠΊΠ½ΡƒΡ‚ΠΎ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ мноТСство всСх строк, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠ΅ΠΉ нуля ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ строк ΠΈΠ· R. НапримСр, {" Go", «Russia» }* = {Π΅, «Go», «Russia», «GoGo», «GoRussia», «RussiaGo», «RussiaRussia», «GoGoGo», «GoGoRussia», «GoRussiaGo», …}.

Бинтаксис Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ символов Π² Ρ€Π΅Π³ΡƒΠ»ΡΡ€Π½ΠΎΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ сами сСбя Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов [ ] / ^ $. |? * + () { }, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Π²Π°Ρ€Π΅Π½Ρ‹ символом (обратная косая Ρ‡Π΅Ρ€Ρ‚Π°) («ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹», «Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Ρ‹») для прСдставлСния ΠΈΡ… ΡΠ°ΠΌΠΈΡ… Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ символов тСкста. МоТно ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π΅Π»ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов, Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΠ² Π΅Ρ‘ ΠΌΠ΅ΠΆΠ΄Ρƒ Q ΠΈ E.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

БоотвСтствиС.

a.

a. ΠΈΠ»ΠΈ a.

a.

a.

a[F].

a[F].

Q±*/E.

±*/.

Аналогично ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСны Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы (Π½Π°Π±ΠΎΡ€ символов, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… экранирования, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ). Π§Π°ΡΡ‚ΡŒ символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Ρ‚ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ экранирования (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡƒΠ³Π»ΠΎΠ²Ρ‹Π΅ скобки), ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ экранированы ΠΈΠ· ΡΠΎΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ удобочитаСмости.

ΠœΠ΅Ρ‚Π°ΡΠΈΠΌΠ²ΠΎΠ». (Ρ‚ΠΎΡ‡ΠΊΠ°) ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ любой символ, Π½ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… рСализациях ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ символ Π½ΠΎΠ²ΠΎΠΉ строки.

Набор символов Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках [ ] имСнуСтся ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ классом ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρƒ рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ мСстС Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚ΠΎΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… символов. Π’ Ρ‡Π°ΡΡ‚ности, [Π°Π±Π²]Π·Π°Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ появлСния Π² Ρ‚СкстС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Ρ‚Ρ€Ρ‘Ρ… ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… символов, Π° [1 234 567 890] Π·Π°Π΄Π°Ρ‘Ρ‚ соотвСтствиС ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Ρ†ΠΈΡ„Ρ€. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ² символов: Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, [А-Π―Π°-я] соотвСтствуСт всСм Π±ΡƒΠΊΠ²Π°ΠΌ русского Π°Π»Ρ„Π°Π²ΠΈΡ‚Π°, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π±ΡƒΠΊΠ² «Π» ΠΈ «Ρ‘».

Если трСбуСтся ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π²Ρ…одят Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ символ ^ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобок, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ [^0−9] ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ любой символ, ΠΊΡ€ΠΎΠΌΠ΅ Ρ†ΠΈΡ„Ρ€.

НСкоторыС ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ классы ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ мСтасимволами:

Π‘ΠΈΠΌΠ²ΠΎΠ».

Π­ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚.

БоотвСтствиС.

d.

[0−9].

Π¦ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ символ.

D.

[^0−9].

НСцифровой символ.

s.

[ f v].

ΠŸΡ€ΠΎΠ±Π΅Π»ΡŒΠ½Ρ‹ΠΉ символ.

S.

[^ f v].

ΠΠ΅ΠΏΡ€ΠΎΠ±Π΅Π»ΡŒΠ½Ρ‹ΠΉ символ.

w.

[[:word:]].

Π‘ΡƒΠΊΠ²Π΅Π½Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ символ ΠΈΠ»ΠΈ Π·Π½Π°ΠΊ подчСркивания.

W.

[^[:word:]].

Π›ΡŽΠ±ΠΎΠΉ символ, ΠΊΡ€ΠΎΠΌΠ΅ Π±ΡƒΠΊΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ³ΠΎ символа ΠΈΠ»ΠΈ Π·Π½Π°ΠΊΠ° подчСркивания.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ символы ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ элСмСнтов тСкста: Π½Π°Ρ‡Π°Π»Π° ΠΈ ΠΊΠΎΠ½Ρ†Π° строки, Π³Ρ€Π°Π½ΠΈΡ† слова. рСгулярный Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ грамматичСский ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅.

ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

БоотвСтствиС.

^.

Начало строки.

^a.

aaa aaa.

$.

ΠšΠΎΠ½Π΅Ρ† строки.

a$.

aaa aaa.

Π“Ρ€Π°Π½ΠΈΡ†Π° слова.

a.

aaa aaa.

a.

aaa aaa.

B.

НС Π³Ρ€Π°Π½ΠΈΡ†Π° слова.

BaB.

aaa aaa.

G.

ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΉ поиск.

Ga.

aaa aaa (поиск остановился Π½Π° 4-ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ — Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π½Π΅ Π½Π°ΡˆΠ»ΠΎΡΡŒ a).

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ