Title: UNIX: ?????????? ?????????, POSIX/PCRE, GREP, SED
1UNIX ?????????? ?????????, POSIX/PCRE, GREP,
SED
2?????????? ?????????
- Regular expressions (RegExp, RegEx)
- ?????????? ???? ?????? ? ?????????????
??????????? ? ??????????? ? ?????? - ????????????? ???????????? (wildcard characters)
- ?????? (?????) - ?????? ??????? ??????.
3????????? ?????????? ?????????
- ????? ??? ????????? ???????? ? ??????
???????????????? - ????????? ?????????? ?????????? ? ???????, ??
???????? ???????? ?????????? ????????? ?????
?????????.
4??????? ???????
- ????????????
- - ????????? ?????????e ????????
- graygrey
- ???????????
- () ?????????? ??????? ???????? ? ?????????
?????????? - gr(ae)y
5??????? ???????(???????????)
- ?????????????
- m, n
- m,
- , n
- ? 0, 1
- 0,
- 1,
- gogle ????????????? gogle, google ? ?.?., ??
?? ggle
6?????????? ????????? ? UNIX
- ????????? BRE (basic regular expressions) ??
?????? ?????? ????????? POSIX ??? ?????????? - ?????? ????????????? ?? ??????????? ????????
????????????? - ?????? UNIX-??????? ?????????? ????? ??????????
????????? ?? ?????????.
7POSIX ????????
- ????? ????????
- . ????? - ????? ??????
- lt???????gt - ?????????? ?????? ?????
???????? ("????? ??") - lt???????gt - ?????????? ????? ????????
("????? ?????") - - ??????????? ?????????????????? ? ??????
???????? ("0-9" --?????)
8?????????????? ? ????? ? POSIX
- ??????????????
-
- "?????????" ??? ???? ????????? 0,
- ???? 1,
- ? ?????????????? ???? 0,1
- ?????
- ???????? ? ?????? ??????
- ???????? ? ????? ??????
9??????????? ?????????? ?????????
- ? ????????????? UNIX-?????????? ?????????
??????? -
- ?
-
- ??????? ???????????? ?????? \
10PCRE ????????
- Perl compatible regular expressions
- i ??????????????????? ?????
- m ?????????????? ?????.
- "" ????????? ? ??????? ? ?????? ?????????
?????. - s ?????? "." (?????) ????????? ? ?
????????? ?????? (?? ????????? -- ???) - A ???????? ? ?????? ??????
- E ?????????? ?????? "" ????????? ?????? ?
?????? ??????. - U ??????????? "????????" ??? ???????
?????????????? (???? ????? ?????????????? ?????
"?", ????????????? ????????? ???? "??????").
11??????
- ??????? ?????? ???????????? ??? ???????????
??????? ???????? ? ?????????? ???????? - ??????????? ? ???????? ?????? ? ???
- ????????? ???????????
12?????? ????????? ???????????
?????? ???????????? ??????????? ??????
a(bcbx)cc abccaxcc abccaxcc abccaxcc abccaxcc
a(?bcbx)cc abccaxcc abccaxcc abccaxcc abccaxcc
a(?bcbx)cc abccaxcc abccaxcc
a(?gtbcbx)cc abccaxcc ?? ?? abccaxcc ??????? x ??????, ????????? ??????????????? ???
13RegExp ? PHP
- ???????????? 2 ????????? POSIX ? PCRE (version
gt4. ???) - POSIX - ?????? Apache ? mod_rewrite ? MySQL ?
????? ???????? - PCRE - ??????? perl.
14RegExp ? PHP
- ?????? ????????????? ? PHP -
- if (ereg("a-zA-Z0-9", text)) ...
- ( ???? ?????? ?????????, ???? ?????? ???????,
???? ????? ) - ?????? ??????????? (??????????? ? ?????????? -
???) ??????????? ???????? - ?????? ????????????? ??????
- if (ereg("lttaggt(a-zA-Z0-9)lt/taggt",
text)) ... - (?? ?? ????? ???? ?????? ???? )
15Subpatterns ????????? ???????
- ??? ??????? ????????? ????????
- ??? ?????? ?????? ?????????? ?????? ??? ?????????
?? ? ??????????. - ereg_replace("lta href(gt)gtltlt/agt", "\\0
\\1", text)
16????????? ?????????? ?????????
???????? ??????????
. (?????) ????? ????????? ??????.
(??????) ?????? ??????????????????, ??????????? ? ?????? ??????.
(???? ???????) ?????? ??????????????????, ??????????? ? ????? ??????.
A ????? A ? ??????? ????????.
a ????? a ? ?????? ????????.
\d ????????? ?????.
\D ????????? ??????, ?? ?????????? ??????.
\w ????? ????????? ?????-????????? ??????, ???? ???????? - ??????? alnum.
A-E ????? ????? ?? A, B, C, D ??? E ? ??????? ????????.
A-E ????? ??????, ????? ????? ?? A, B, C, D ??? E ? ??????? ????????.
17????????? ?????????? ????????? (???????????)
???????? ??????????
X? ???? ??? ?? ????? ????????? ????? X.
X ???? ??? ????? ????????? ????? X.
X ???? ??? ????? ????????? ????? X.
Xn ????? n ????????? ???? X.
Xn,m ?? ????? n ? ?? ????? m ????????? ???? X. ???? ???????? m, ?? ???????? ???????? ??? ??????? n ????????? ???? X.
(abcdef) ?? ????? ????? ?????????????????? abc, def, abc ? def ????? ????????? ???????????.
18?????? ? ????????? ????????
POSIX ????? ??????? ????????
upper A-Z ??????? ???????? ????????
lower a-z ??????? ??????? ????????
alpha A-Za-z ??????? ???????? ? ??????? ????????
alnum A-Za-z0-9 ?????, ??????? ???????? ? ??????? ????????
digit 0-9 ?????
xdigit 0-9A-Fa-f ????????????????? ?????
punct .,!? ????? ??????????
blank \t ?????? ? TAB
space \t\n\r\f\v ??????? ????????
cntrl ??????? ??????????
graph \t\n\r\f\v ??????? ??????
print \t\n\r\f\v ??????? ?????? ? ??????? ???????
19?????? ?????????
- ??????? ?????????
- ?????? ?????????
- ????????(???????????) ?????????
?????? ??????? ????????
?
? ?? ?
?
n, n,? n,
20??????????
- NFA (Nondeterministic Finite State Machine
??????????????????? ???????? ????????) - DFA (Deterministic Finite-state Automaton
????????????????? ???????? ????????)
21GREP
- ??????? ????????? ?????? (search globally for
lines matching the regular expression, and print
them) - ??????? ?? ????? ??????, ?????????? ?????????
??????????? ?????????, ? ??????? ??, ???? ?????
?? ??????? ??????????? ?????? - ?????????? ???? ??????? ??? ???????????? ???????
UNIX
22??????????? GREP
- egrep (? ?????????? ??????????? ??????????
?????????) - grep E
- fgrep (?????????? ??????? ()\ ?????????)
- grep -F
- rgrep (? ?????????? ??????????? ???????)
- grep -r
23????????? GREP
- grep '?????????? ?????????' '????
- grep -E '(batBatcatCat)' heroes.txt
- grep -i -E '(batcat)' heroes.txt
- cat '????' grep '?????????? ?????????
- cat heroes.txt grep -E 'bcBCat
24??????? ??? GREP
- ????????????
- grep --color ta-z midsummer
- ??????????? ??????????
- grep o A-Za-z midsummer
- ?????????? ??? ?????????
- grep -E 'bcBCat' heroes.txt
- grep -E '(batBatcatCat)' heroes.txt
-
25????????? ???????? sed
-
- sed -n -e script -f sfile files
- ??????? ??????????????
- addr , addr cmd args
26??????? ?????????????? sed
- " addr , addr " - ?????? ?????, ?????????
?????? (""), ?????????? ????????? - "\" ???????????? ? ????????????? ???????? ???
????????????? ??????????? ??????. - "." ????????? ? ????? ????????.
- ???? ?????? ?? ??????? - ??????????????? ???
??????? ??????. - ???? ???? ?????, ?? ?????????? ???????????
??????. - ???? ?????? ??? ??????, ?????????? ?????? ?
???????? ?????????. - "!cmd" ??????????? ??????? "cmd", ??? ?????,
??????? ?? ???? ??????? ?? ???????.
27??????? ?????????????? sed
- (1)a\ text
- (2)b label
- (2)c\ text
- (2)d
- (1)i\ text
- (2)p
- (1)q
- (2)r rfile
- (2)y/str1/str2/
28?????? ????????????? sed
- who sed '2a\
- ????? ??????
- '
29????????? ???????
- root tty1 Mar 13 1723
- mas tty2 Mar 13 1850
- ????? ??????
- sae tty6 Mar 13 1724
- sae tty5 Mar 13 1724
30?????? 1. ????? ? ????????
31?????? 2. Username
32?????? 3. ??????
33?????? 4. XML tag
34?????? 5. Email
35?????? 6. URL
36?????? 6. IP ?????
37?????? ?????????
- xyz
- ????????? \(????\)
- ????? ???????? ?????? ? ?????, ??? ???????
????????? ???? ?? ?????? - ????? ???????? ?????? - ? ?????, ??? ???????
????????? ???? ?????? ??? ?????????. ???????? - ?????? DNS-????? -0-9a-zA-Z.
- ????? ??????, ????? ?????? ? ????? -0-9
- ????? ???????? ?????? ??? ? ?????
- ab ????????????? , , a ??? b
- reg_exp